从午夜到特定日期时间有多少秒

How many seconds from midnight until specific Datetime

是否有一种非常简单的 shorthand 方法可以找出某个日期时间是午夜过后多少秒?不是离现在多少秒,是那天过去的秒数

例如:

有没有一个很好的简短方法来做到这一点?

一天是 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;
?>