Większość z prezentowanych rozwiązań wydaje się działać, ale wszyscy zapomina o jednej rzeczy: czasie.
Biorąc Evan przykład:
$datetime1 = strtotime('May 3, 2012 10:38:22 GMT');
$datetime2 = strtotime('06 Apr 2012 07:22:21 GMT');
$secs = $datetime2 - $datetime1;// == <seconds between the two times>
$days = $secs/86400;
Kiedy nie przyciąć część czasu, co może prowadzić do milscalculations. Na przykład: Przedział między 2014-05-01 14:00:00
(Y-m-d) i 2014-05-02 07:00:00
będzie wynosił 0, xxx, nie 1. Należy przyciąć część czasu każdej daty.
Tak powinno być:
$datetime1 = strtotime(date('Y-m-d', strtotime('May 3, 2012 10:38:22 GMT')));
$datetime2 = strtotime(date('Y-m-d', strtotime('06 Apr 2012 07:22:21 GMT')));
$secs = $datetime2 - $datetime1;// == <seconds between the two times>
$days = $secs/86400;
muszę konwertować sekundy między dwa dni times..to .. nie jest szybsza droga –
sekund w ciągu dnia = 60 * 60 * 24 = 86 400, więc po prostu podziel się przez to. – evan
Świetne rozwiązanie @evan. Kciuki w górę (y) – NullPointer