2009-08-28 12 views

Odpowiedz

29

Pierwsza myśl:

86400 - date('H') * 3600 - date('i') * 60 - date('s') 

Szybsza wersja pochodzi z VolkerK za odpowiedź:

strtotime('tomorrow') - time() 
+0

To działa, dzięki! – Psyche

+2

Należy pamiętać o czasie letnim;) – VolkerK

+0

Druga metoda jest technicznie lepsza, a także szybsza. Nie wszystkie dni mają 86400 sekund. Zobacz: http://stackoverflow.com/questions/7780464/is-time-guaranteed-to-be-leap-second-aware –

7
$rs = strtotime('24:00') - time(); 
echo $rs; 

EDIT: jeszcze szybciej

echo mktime(24,0,0) - time(); 
+2

Nie działa, ale '$ rs = strtotime ('23: 59: 59 ') - time() + 1; echo $ rs; 'robi. :) – chaos

+0

hm, działa poprawnie na php 5.3.0/win32. – VolkerK

0
$sDate = '2014-12-01 23:59:58'; 
$oDatetime1 = new DateTime($sDate); 
$oDatetime2 = new DateTime($sDate); 

$oDatetime1->modify('tomorrow'); 

echo $oDatetime1->getTimestamp() - $oDatetime2->getTimestamp(); 
0

Jeśli używasz Carbon można po prostu użyć

Carbon::now()->secondsUntilEndOfDay();