从午夜到特定日期时间有多少秒
How many seconds from midnight until specific Datetime
是否有一种非常简单的 shorthand 方法可以找出某个日期时间是午夜过后多少秒?不是离现在多少秒,是那天过去的秒数
例如:
2015-04-10 00:00:00
应该 returns 0
2015-04-12 09:20:00
应该 returns 33600
2015-04-14 15:20:00
应该 returns 55200
有没有一个很好的简短方法来做到这一点?
一天是 24 小时是 60 分钟是 60 秒是 1000 毫秒,所以时间戳 % (24*60*60*1000) 可以工作,也许,至少如果你和纪元在同一个时区php 正在使用(或任何你的时间戳来自)。它至少可以在对准确性要求不高的情况下发挥作用。 PHP 使用您系统的时间,很多事情都会破坏这个想法(更改时钟、DST、闰秒等)
我个人会使用 timestamp - startofday timestamp 并使用语言的日历来计算。
这是一个简单的代码。
任何一天代码
<?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;
?>
是否有一种非常简单的 shorthand 方法可以找出某个日期时间是午夜过后多少秒?不是离现在多少秒,是那天过去的秒数
例如:
2015-04-10 00:00:00
应该 returns0
2015-04-12 09:20:00
应该 returns33600
2015-04-14 15:20:00
应该 returns55200
有没有一个很好的简短方法来做到这一点?
一天是 24 小时是 60 分钟是 60 秒是 1000 毫秒,所以时间戳 % (24*60*60*1000) 可以工作,也许,至少如果你和纪元在同一个时区php 正在使用(或任何你的时间戳来自)。它至少可以在对准确性要求不高的情况下发挥作用。 PHP 使用您系统的时间,很多事情都会破坏这个想法(更改时钟、DST、闰秒等)
我个人会使用 timestamp - startofday timestamp 并使用语言的日历来计算。
这是一个简单的代码。
任何一天代码
<?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;
?>