Ver Mensaje Individual
  #3 (permalink)  
Antiguo 29/07/2003, 15:53
josemi
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
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 <=){

    
$month =0;

 }else{

    
$month 1;

 }



if (
$days )

  
$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 <=){

    
$month =0;

 }else{

    
$month 1;

 }



if (
$days )

  
$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.
__________________
Josemi

Aprendiz de mucho, maestro de poco.