2011-09-19 14 views
8

Ho salvato una data in questo modo "2011-09-23 19:10:18" E voglio ottenere i giorni e le ore rimanenti fino al raggiungimento della data. Come lo faccio? Ho provato con il manuale php ma tutto quello che trovo sono solo le classi, che non intendo usare, poiché il resto dell'applicazione è scritto procuderal.Php recupera quanti giorni e ore sono rimaste da una data

risposta

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 l'ora tutto e nessun minuti/secondi considerazione significa che può essere un po 'imprecisa .

+0

questo dovrebbe rispondere alla domanda posta. grazie, mi ha aiutato anche – od3n

17

Questo dovrebbe seminare il tuo sforzo.

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

conversione 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

sarebbe qualcosa di simile

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

È possibile trovare la data e l'ora corrente utilizzando la funzione date() e quindi sottrarre

$ x = 2011-09-23 - current_date

questo ti darà no. di giorni rimanenti.

fare lo stesso con il tempo come pure ..

Spero che questo aiuti frammento

+0

Non funziona. –

2

Ecco una buona spiegazione, si potrebbe desiderare di dare un'occhiata a this

+0

sembra un buon riferimento. grazie per la condivisione. – od3n

15

dal PHP 5.3.0 è possibile utilizzare build-in Data oggetto:

$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

Mi stavo chiedendo quali parametri posso usare. Ecco la risposta: http://php.net/manual/en/dateinterval.format.php#refsect1-dateinterval.format-parameters –

1

Il modo più semplice è una risposta migliorata da CountZero. Ho usato questa soluzione per il contatore per il tempo rimanente prima della scadenza dell'offerta. Oltre alle prime tre righe di codice countzero:

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

E ora, è possibile utilizzare le funzioni di stringa per moderare i tuoi valori di ritorno, per unire tutte o aggiungere '0' o '00' di fronte ai valori.

Problemi correlati