|
Esto no es una pregunta, ni duda, es un pequeño aporte que quiero hacer a este foro, está es una función que permite sumar fechas, pasandole como parámetro la cantidad de días que quieres sumar, regresa la fecha futura, encontré una implementación parecida en php.net (así que ahí también pueden enontrar esto), sólo que me hice mi propia versión, y ahora la comparto con ustedes: Código :
/*
dateAdd(int)
Función que calcula una fecha futura según la cantidad de días que se le proporcionen como argumento
Versión original en http://www.php.net
Adaptación: Aoyama (LSCA. Israel E. García)
*/
function dateAdd($dias)
{
$mes = date("m");
$anio = date("Y");
$dia = date("d");
$ultimo_dia = date( "d", mktime(0, 0, 0, $mes + 1, 0, $anio) ) ;
$dias_adelanto = $dias;
$siguiente = $dia + $dias_adelanto;
if ($ultimo_dia < $siguiente)
{
$dia_final = $siguiente - $ultimo_dia;
$mes++;
if ($mes == '13')
{
$anio++;
$mes = '01';
}
$fecha_final = $dia_final.'/'.$mes.'/'.$anio;
}
else
{
$fecha_final = $siguiente .'/'.$mes.'/'.$anio;
}
return $fecha_final;
}
Y se usa así: Código : $fecha_futura = dateAdd(20); Siendo 20 los días que en este ejemplo quiero adelantar. Espero les sirva |
Aoyama
3 Tutoriales |
|
c00l PD: Haz un tuto! |
NEO_JP
5 Tutoriales |
|
the_NEO_JP escribió: c00l PD: Haz un tuto! pos alguien que le explique... |
1 Tutorial |
|
the_NEO_JP escribió: c00l PD: Haz un tuto! Mmm un tuto??? ya tengo uno pendiente *Aoyama recuerda que debe terminar uno de javascript + css para impresiones personalizadas... |
Aoyama
3 Tutoriales |
|
Aoyama escribió: javascript + css para impresiones personalizadas ¿ uh ? O_o |
NEO_JP
5 Tutoriales |
|
Juas! no me exprese bien... es algo que hice hace unos meses, usando Javasciprt y CSS para controlar lo que quiero imprimir ... |
Aoyama
3 Tutoriales |
|
Código : <?php
function cambiarFecha($dias){
if ($dias>0){
return date('d/m/Y', strtotime('+'.$dias.' days'));
}
return date('d/m/Y', strtotime('-'.$dias.' days'));
}
echo "Hoy: ".cambiarFecha(0)."<br>";
echo "Menos 20: ".cambiarFecha(-20)."<br>";
echo "Mas 20: ".cambiarFecha(+20)."<br>";
echo "Mas 30: ".cambiarFecha(+30)."<br>";
echo "Mas 365: ".cambiarFecha(+365)."<br>";
?> PD: es posible que jhony192 no entienda, le explico si se ejecuta un return las siguientes lineas de código dentro de la funcion NO se ejecuta Edición: para colocar el PD |
Maikel
6 Tutoriales |
|
Maikel, como recomendación a ti y a todo el que lea esto, a las funciones se les hace UN SOLO return no 2, ni 3, ni 4, 1 y solo 1, claro tu codigo igual funcionara pero 1 solo return entra a aquello que llaman buenas practicas de programación SAludos |
Prozac
1 Tutorial |
|
Prozac escribió: a las funciones se les hace UN SOLO return no 2, ni 3, ni 4 Eso depende del caso; por ejemplo, en las funciones recursivas, varios return resuelven mas facil un problema, evitando crear mas variables temporales.Pero tienes razon, en general, es mejor que solo un punto sea la salida de la función |
Freddie
25 Tutoriales |
|
no pude entender el code pero lo pude mejorar Código : <?php
function cambiarfecha($dias){
return date('d/m/Y', strtotime($dias.' days'));
}
?>
Hoy: <?=cambiarFecha('0')?><br />
Menos 20: <?=cambiarfecha('-20')?><br />
Mas 20: <?=cambiarfecha('+20')?><br />
Mas 30: <?=cambiarfecha('+30')?><br />
Mas 365: <?=cambiarfecha('+365')?><br />
Ahora di que me odias |
1 Tutorial |
|
jhony192 escribió: Ahora di que me odias Te queremos jhony192Ahora toma esta moneda de 3 centavos, ve y comprate un helado |
Freddie
25 Tutoriales |
|
jhony192 escribió: Ahora di que me odias [modo_sarcasm]Alguien tiene que reconocer tu aporte jhony192... Muy bien, creo que este tema ayudará a muchos por aca... de hecho, lo convierto en post it (las troleadas y offtopic serán quitadas...). P.D. Sephirot, muy buena iniciativa! |
Pedro
2 Tutoriales |
|
Me parece mas practico pasar las fechas a segundos y luego restarlas, sumarlas etc |
|
|
esto me va a servir muchas gracias.! |
|