Foros del Web » Programando para Internet » PHP »

Cronometro en PHP

Estas en el tema de Cronometro en PHP en el foro de PHP en Foros del Web. Buenas, tengo un amigo que desea colocar un cronometro invertido en php para su web!! es decir, que diga cuantos DIAS, HORAS Y MINUTOS faltan ...
  #1 (permalink)  
Antiguo 06/04/2006, 16:00
 
Fecha de Ingreso: febrero-2006
Ubicación: VENEZUELA!!
Mensajes: 32
Antigüedad: 18 años, 2 meses
Puntos: 0
Cronometro en PHP

Buenas, tengo un amigo que desea colocar un cronometro invertido en php para su web!! es decir, que diga cuantos DIAS, HORAS Y MINUTOS faltan para algun evento!! alguien sabe?? por favor ayudenos!!
  #2 (permalink)  
Antiguo 06/04/2006, 17:15
Avatar de turco_7  
Fecha de Ingreso: diciembre-2003
Ubicación: Córdoba, Argentina
Mensajes: 1.044
Antigüedad: 20 años, 4 meses
Puntos: 19
Código PHP:
<?php
$dateFrom 
"25-03-2005 14:20:00";
$dateTo date("d-m-Y H:i:s"strtotime('now'));
 
$diffd getDateDifference($dateFrom$dateTo'd');
$diffh getDateDifference($dateFrom$dateTo'h');
$diffm getDateDifference($dateFrom$dateTo'm');
$diffs getDateDifference($dateFrom$dateTo's');
$diffa getDateDifference($dateFrom$dateTo'a');
 
echo 
'Calculating difference between ' $dateFrom ' and ' $dateTo ' <br /><br />';
 
echo 
$diffd ' days.<br />';
echo 
$diffh ' hours.<br />';
echo 
$diffm ' minutes.<br />';
echo 
$diffs ' seconds.<br />';
 
echo 
'<br />In other words, the difference is ' $diffa['days'] . ' days, ' $diffa['hours'] . ' hours, ' $diffa['minutes'] . ' minutes and ' $diffa['seconds'] . ' seconds.<br>';
 
?>
 
Here's the code:
 
<?php
/**
* Calculates the difference for two given dates, and returns the result
* in specified unit.
*
* @param string Initial date (format: [dd-mm-YYYY hh:mm:ss], hh is in 24hrs format)
* @param string Last date (format: [dd-mm-YYYY hh:mm:ss], hh is in 24hrs format)
* @param char 'd' to obtain results as days, 'h' for hours, 'm' for minutes, 's' for seconds, and 'a' to get an indexed array of days, hours, minutes, and seconds
*
* @return mixed The result in the unit specified (float for all cases, except when unit='a', in which case an indexed array), or null if it could not be obtained
*/
function getDateDifference($dateFrom$dateTo$unit 'd')
{
$difference null;
 
$dateFromElements split(' '$dateFrom);
$dateToElements split(' '$dateTo);
 
$dateFromDateElements split('-'$dateFromElements[0]);
$dateFromTimeElements split(':'$dateFromElements[1]);
$dateToDateElements split('-'$dateToElements[0]);
$dateToTimeElements split(':'$dateToElements[1]);
 
// Get unix timestamp for both dates
 
$date1 mktime($dateFromTimeElements[0], $dateFromTimeElements[1], $dateFromTimeElements[2], $dateFromDateElements[1], $dateFromDateElements[0], $dateFromDateElements[2]);
$date2 mktime($dateToTimeElements[0], $dateToTimeElements[1], $dateToTimeElements[2], $dateToDateElements[1], $dateToDateElements[0], $dateToDateElements[2]);
 
if( 
$date1 $date2 )
{
return 
null;
}
 
$diff $date2 $date1;
 
$days 0;
$hours 0;
$minutes 0;
$seconds 0;
 
if (
$diff 86400 <= 0// there are 86,400 seconds in a day
{
$days $diff 86400;
}
 
if(
$diff 86400 0)
{
$rest = ($diff 86400);
$days = ($diff $rest) / 86400;
 
if( 
$rest 3600 )
{
$rest1 = ($rest 3600);
$hours = ($rest $rest1) / 3600;
 
if( 
$rest1 60 )
{
$rest2 = ($rest1 60);
$minutes = ($rest1 $rest2) / 60;
$seconds $rest2;
}
else
{
$minutes $rest1 60;
}
}
else
{
$hours $rest 3600;
}
}
 
switch(
$unit)
{
case 
'd':
case 
'D':
 
$partialDays 0;
 
$partialDays += ($seconds 86400);
$partialDays += ($minutes 1440);
$partialDays += ($hours 24);
 
$difference $days $partialDays;
 
break;
 
case 
'h':
case 
'H':
 
$partialHours 0;
 
$partialHours += ($seconds 3600);
$partialHours += ($minutes 60);
 
$difference $hours + ($days 24) + $partialHours;
 
break;
 
case 
'm':
case 
'M':
 
$partialMinutes 0;
 
$partialMinutes += ($seconds 60);
 
$difference $minutes + ($days 1440) + ($hours 60) + $partialMinutes;
 
break;
 
case 
's':
case 
'S':
 
$difference $seconds + ($days 86400) + ($hours 3600) + ($minutes 60);
 
break;
 
case 
'a':
case 
'A':
 
$difference = array (
"days" => $days,
"hours" => $hours,
"minutes" => $minutes,
"seconds" => $seconds
);
 
break;
}
 
return 
$difference;
}
?>
http://www.forosdelweb.com/f18/comparar-dos-fechas-con-php-364636/
usemos el buscador ... !!! saludos
__________________
Mi Blog http://turco7.blogspot.com
Usuario Linux : 404289
Mi última página: http://www.digitalservicecba.com.ar - Reparacion de camaras digitales!
  #3 (permalink)  
Antiguo 23/11/2007, 14:34
 
Fecha de Ingreso: mayo-2003
Mensajes: 544
Antigüedad: 21 años
Puntos: 1
Re: Cronometro en PHP

Este código me viene excelente, pero al probarlo me di cuenta que no muestra ningún resultado :( lo más raro es que el código no tiene ningún error.
Alguien sabe por qué?
Gracias
__________________
CSSBoulevar
Recursos para diseñadores y programadores webs
  #4 (permalink)  
Antiguo 23/11/2007, 14:44
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 19 años, 1 mes
Puntos: 17
Re: Cronometro en PHP

Esta forma es más fácil, creo...

Código PHP:
<?php
function date_diff($from$to null)
{
    if (!
is_integer($from))
    {
        
$from strtotime($from);
    }
    if (
$to === null)
    {
        
$to time();
    } elseif (!
is_integer($to))
    {
        
$to strtotime($to);
    }
    
$diff $to $from;
    
$return['days'] = floor($diff / (24 60 60));
    
$diff -= $return['days'] * 24 60 60;
    
$return['hours'] = floor($diff / (60 60));
    
$diff -= $return['hours'] * 60 60;
    
$return['minutes'] = floor($diff / (60));
    
$diff -= $return['minutes'] * 60;
    
$return['seconds'] = floor($diff);
    return 
$return;
}

$dateFrom "25-03-2005 14:20:00";
var_dump(date_diff($dateFrom));
?>
  #5 (permalink)  
Antiguo 23/11/2007, 15:45
 
Fecha de Ingreso: mayo-2003
Mensajes: 544
Antigüedad: 21 años
Puntos: 1
Re: Cronometro en PHP

Es verdad, muchas gracias!
y dime, como hago para acceder a los datos uno por uno?
estoy tratando de acceder al array pero no tengo resultados :(
__________________
CSSBoulevar
Recursos para diseñadores y programadores webs
  #6 (permalink)  
Antiguo 24/11/2007, 00:20
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 19 años, 1 mes
Puntos: 17
Re: Cronometro en PHP

Código PHP:
$dateFrom "25-03-2005 14:20:00";
$diferencia date_diff($dateFrom);
echo 
'La diferencia es de ' $diferencia['days'] . ' dias, ' $diferencia['hours'] . ' horas, ' $diferencia['minutes'] . ' minutos y ' $diferencia['seconds'] . ' secundos'
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:57.