2011-09-19 42 views
8

Tengo una fecha guardada me gustó esto "2011-09-23 19:10:18" Y quiero obtener los días y horas restantes hasta que se llegue a la fecha. ¿Cómo puedo hacer eso? Lo he estado intentando con el manual php pero todo lo que encuentro son solo clases, que no pretendo usar, ya que el resto de la aplicación está escrita procuro.Php obtener cuántos días y horas quedan de una fecha

Respuesta

19

PHP:

<?php 

//Convert to date 
$datestr="2011-09-23 19:10:18";//Your date 
$date=strtotime($datestr);//Converted to a PHP date (a second count) 

//Calculate difference 
$diff=$date-time();//time returns current time in seconds 
$days=floor($diff/(60*60*24));//seconds/minute*minutes/hour*hours/day) 
$hours=round(($diff-$days*60*60*24)/(60*60)); 

//Report 
echo "$days days $hours hours remain<br />"; 
?> 

nota de la hora todo el año y sin minutos/segundos consideración significa que puede ser un poco impreciso .

+0

este debe responder la pregunta. gracias, me ayudó también – od3n

17

Esto debería sembrar en su esfuerzo.

getdate(strtotime("2011-09-23 19:10:18")) 

conversión completa:

$seconds = strtotime("2011-09-23 19:10:18") - time(); 

$days = floor($seconds/86400); 
$seconds %= 86400; 

$hours = floor($seconds/3600); 
$seconds %= 3600; 

$minutes = floor($seconds/60); 
$seconds %= 60; 


echo "$days days and $hours hours and $minutes minutes and $seconds seconds"; 
1

sería algo así como

echo $date = date("Y-m-d H:i:s");echo "\n"; 

$original=time($date); 


$modified = "2011-09-23 19:10:18"; 

echo date("Y-m-d H:i:s",$modified);echo "\n"; 
0

Puede encontrar la fecha y hora actual usando la función date() y luego restar

$ x = 2011-09-23 - current_date

esto le dará no. de días restantes.

hacer lo mismo con el tiempo, así ..

Esperanza esto ayuda fragmento

+0

No funciona. –

2

Aquí es una buena explicación, es posible que desee echar un vistazo a this

+0

parece una buena referencia. gracias por compartir. – od3n

15

a partir de PHP 5.3.0 se puede utilizar construir-en el objeto Date:

$datetime1 = new DateTime('2009-10-11'); 
$datetime2 = new DateTime('2009-10-13'); 
$interval = $datetime1->diff($datetime2); 
echo $interval->format('%R%a days'); 

http://www.php.net/manual/en/book.datetime.php

+0

Me preguntaba qué params puedo usar. Aquí está la respuesta: http://php.net/manual/en/dateinterval.format.php#refsect1-dateinterval.format-parameters –

1

La forma más fácil es una respuesta mejorada de CountZero. Utilicé esta solución como contador por el tiempo restante antes del vencimiento de la oferta. Además de las tres primeras líneas de código CountZero:

$days = $interval->d; 
$hours = $interval->h; 
$minutes = $interval->i; 
$seconds = $interval->s; 

Y ahora, puede utilizar las funciones de cadena para moderar sus valores de retorno, para fusionar la totalidad o añadir '0' o '00' delante de los valores.

Cuestiones relacionadas