Hola,
Bueno, seria facil. Primero hay que determinar que parametros son necesarios pasarle a la funcion. Por lo que veo seria el dia, el mes y el año. Asi ya tenemos:
Código PHP:
function dias_que_faltan($day, $month, $year)
{
Lo siguiente seria poner el codigo que ya tienes (quitando los "parametros):
Código PHP:
$target = mktime(7,0,0,$month,$day,$year);
$diff = $target - time();
$days = ($diff - ($diff % 86400)) / 86400;
$diff = $diff - ($days * 86400);
$hours = ($diff - ($diff % 3600)) / 3600;
$diff = $diff - ($hours * 3600);
$minutes = ($diff - ($diff % 60)) / 60;
$diff = $diff - ($minutes * 60);
$seconds = ($diff - ($diff % 1)) / 1;
$restante = "";
$month = $days-30;
if ($month <=0 ){
$month =0;
}else{
$month = 1;
}
if ($days > 0 )
$restante = $restante . $days . " días ";
if (($hours >= 0) && ($restante != ""))
$restante = $restante . $hours . " hrs. ";
if (($minutes >= 0) && ($restante != ""))
$restante = $restante . $minutes . " min.";
if (($seconds > 0) && ($restante ==""))
$restante = $restante . $seconds . " seg.";
Como veras no he puesto la seccion del echo. Es porque me parece mal diseño que las funciones hagan echos o envien algo al navegador.
Lo ultimo es decidir que devuelve la funcion. Aqui seria la cadena $restante o la cadena por defecto:
Código PHP:
if ($restante ==""){
return "0 dias 0 hrs. 0 min.";
}else{
return $restante;
}
} // fin dias_que_faltan()
Poniendolo todo junto con un ejemplo de uso:
Código PHP:
function dias_que_faltan($day, $month, $year)
{
$target = mktime(7,0,0,$month,$day,$year);
$diff = $target - time();
$days = ($diff - ($diff % 86400)) / 86400;
$diff = $diff - ($days * 86400);
$hours = ($diff - ($diff % 3600)) / 3600;
$diff = $diff - ($hours * 3600);
$minutes = ($diff - ($diff % 60)) / 60;
$diff = $diff - ($minutes * 60);
$seconds = ($diff - ($diff % 1)) / 1;
$restante = "";
$month = $days-30;
if ($month <=0 ){
$month =0;
}else{
$month = 1;
}
if ($days > 0 )
$restante = $restante . $days . " días ";
if (($hours >= 0) && ($restante != ""))
$restante = $restante . $hours . " hrs. ";
if (($minutes >= 0) && ($restante != ""))
$restante = $restante . $minutes . " min.";
if (($seconds > 0) && ($restante ==""))
$restante = $restante . $seconds . " seg.";
if ($restante ==""){
return "0 dias 0 hrs. 0 min.";
}else{
return $restante;
}
} // fin dias_que_faltan()
//ejemplo
echo dias_que_faltan(31,12,2002);
Quedarian detalles, como que pasa cuando la fecha que le pasas es anterior a la fecha actual, o que hacer si la fecha no es una fecha valida (aunque creo que eso lo "arregla" mktime()), poner valores por defecto alos parametros, etc. Pero creo que con esto bastaria para ponerlo como funcion (no la he probado, ni siquiera se si hay errores de sintaxis).
Saludos.