2015-03-30 1 views
1

Есть ли простой простой сокращенный способ узнать, сколько секунд прошло за полночь, какое-то время? Не сколько секунд это далеко теперь, последние секунды в тот деньСколько секунд с полуночи до определенного дня?

например:

  • 2015-04-10 00:00:00 Если возвращения 0
  • 2015-04-12 09:20:00 Если возвращения 33600
  • РЕКОМЕНДУЕМЫМ 2015-04-14 15:20:00 возвращает 55200

Есть ли хороший короткий способ сделать это?

+0

Почему вы не просто извлекать часы, минуты и секунды и вычислить (часы * 60 + минуты) * 60 + секунд? Или в каком формате именно ваша метка времени? – Turion

+0

Это в показанном формате. Мой оригинальный метод состоял в том, чтобы сделать что-то вроде mktime (0,0,0, strtotime (date ('m', $ stamp)), strtotime (date ('d', $ stamp)), strtotime (date ('Y' $ stamp))) - но мне было интересно, есть ли сокращенная версия –

ответ

1

Вот вам простой код.

Любой день Код

<?php 
$date = "2015-04-12 09:20:00"; 

$midnight = strtotime(date("Y-m-d 00:00:00", strtotime($date))); 
$now = strtotime($date); 

$diff = $now - $midnight; 
echo $diff; 
?> 

Текущий день Код

<?php 
$midnight = strtotime("midnight"); 
$now = date('U'); 

$diff = $now - $midnight; 
echo $diff; 
?> 

Может быть, более чистый код будет использовать strtotime("midnight", <EpochTime>);

<?php 
$date = "2015-04-12 09:20:00"; 

$midnight = strtotime("midnight", strtotime($date)); 
$now = strtotime($date); 

$diff = $now - $midnight; 
echo $diff; 
?> 
+0

Я повторил это как ответ для любых будущих пользователей, поскольку он, вероятно, ближе к методу, который я использовал –

1

. День 24 часа 60 минут 60 секунд - 1000 миллисекунд, поэтому временная метка% (24 * 60 * 60 * 1000) может работать, может быть, по крайней мере, если вы находитесь в том же часовом поясе, что и epoch php (или независимо от того, откуда вы взяли метку времени). Это будет работать, по крайней мере, для чего-то слишком требовательного к точности. PHP использует время вашей системы, поэтому многие вещи нарушают идею (изменение часов, DST, секунд перехода и т. Д.)

Я бы лично использовал timestamp - startofday timestamp и вычислил, используя календарь языка.

+0

А это действительно помогло мне, в частности, в последнем предложении, я не знал, что вы можете сделать strtotime («полночь», $ штамп), чтобы получить полночь дата, которая была именно тем, чем я был. –

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

  • Нет связанных вопросов^_^