2009-08-28 3 views

ответ

29

Первая мысль:

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

Faster версия, полученный из ответа VolkerK в:

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

Он работает, спасибо! – Psyche

+2

Сохраняйте время летнего времени;) – VolkerK

+0

Второй метод технически лучше, а также быстрее. Не все дни имеют 86400 секунд. Смотрите: http://stackoverflow.com/questions/7780464/is-time-guaranteed-to-be-leap-second-aware –

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

редактирования: еще быстрее

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

Не работает, но '$ rs = strtotime ('23: 59: 59 ') - time() + 1; echo $ rs; 'делает. :) – chaos

+0

hm, отлично работает на 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

Если вы используете Carbon вы можете просто использовать

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

Смежные вопросы