voglio meno due date in phpCome Minus due date in php
ad esempio:
$date1 = 08/16/2013;
$date2 = 08/23/2013;
$answer = date2 - date1;
la $ risposta dovrebbe essere 7, come farò a farlo? grazie mille
voglio meno due date in phpCome Minus due date in php
ad esempio:
$date1 = 08/16/2013;
$date2 = 08/23/2013;
$answer = date2 - date1;
la $ risposta dovrebbe essere 7, come farò a farlo? grazie mille
Inizio usando DateTime classe per la manipolazione di data/ora:
$date1 = new DateTime('08/16/2013');
$date2 = new DateTime('08/23/2013');
$diff = $date1->diff($date2);
print_r($diff); // or $diff->days
uscita:
DateInterval Object
(
[y] => 0
[m] => 0
[d] => 7
[h] => 0
[i] => 0
[s] => 0
[invert] => 0
[days] => 7
)
Ulteriori informazioni sono disponibili allo DateTime:diff().
Si prega di notare che i vari strtotime() esempi non sono corretti nel calcolo della differenza di data/ora. L'esempio più semplice è la differenza tra 2013-03-31 21:00
e 2013-03-30 21:00
. Quale per occhio nudo è esatta differenza di 1 giorno, ma se si sottrae queste 2 date, si otterrà 82800
secondi che è 0.95833333333333
giorni. Ciò è dovuto al cambio di orario dall'inverno all'ora legale. DateTime gestisce correttamente gli anni bisestili e le fasce orarie.
come otterrò il valore? $ Diff [ 'm']? –
Come ho già postato nella risposta, se vuoi la differenza di giorni, prendila come '$ diff-> days'. –
grazie! è davvero un grande aiuto –
$date1 = '08/16/2013';
$date2 = '08/23/2013';
$days = (strtotime($date2) - strtotime($date1))/(60 * 60 * 24);
print $days;
perché dividi il diff a (60 * 60 * 24)? e dove lo prendi? –
Quanti giorni la differenza è tra '2013-03-31 21: 00' a '2013-03-30 21: 00' con questo esempio? –
Quello che dovrebbe essere la risposta. – Yasitha
si può ottenere con strtotime
e meno Date
$diff = abs(strtotime('08/16/2013') - strtotime('08/23/2013'));
echo $min = floor($diff/(60*60*24)); // 7
perché dividi il diff a (60 * 60 * 24)? e dove lo prendi? –
'60 * 60 * 24' è il secondo dei giorni. Il risultato 'diff' è' 604800' circa tra due secondi di data. Devi dividere al giorno. Il primo '60' è min, il secondo' 60' ora e l'ultimo '24' è per il giorno. Quindi '60 * 60 * 24 = 86400' significa una (1) data. – Bora
Quanti giorni la differenza è tra '2013-03-31 21: 00' a '2013-03-30 21: 00' con questo esempio? –
Prova questo -
<?php
$date1 = strtotime('08/16/2013');
$date2 = strtotime('08/23/2013');
echo $hourDiff=round(abs($date2 - $date1)/(60*60*24),0);
?>
'$ datetime1 = new DateTime ($ date1); \t \t $ datetime2 = new DateTime ($ date2); \t \t $ days = round (($ datetime1-> format ("U") - $ datetime2-> format ("U"))/86400); 'Restituirà numero intero di giorni. –