从午夜到特定日期时间的秒数

时间:2015-03-30 08:54:34

标签: php datetime time timestamp

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

例如:

  • 2015-04-10 00:00:00应该返回0
  • 2015-04-12 09:20:00应该返回33600
  • 2015-04-14 15:20:00应该返回55200

有一个很好的简短方法吗?

2 个答案:

答案 0 :(得分:1)

一天是24小时是60分钟是60秒是1000毫秒,所以时间戳%(24 * 60 * 60 * 1000)可以工作,也许,至少如果你在与epoch php相同的时区使用(或任何你的时间戳来自)。它至少可以用于对准确性要求太高的事情。 PHP使用你的系统时间,所以许多事情都会打破这个想法(改变时钟,DST,闰秒等)

我个人会使用时间戳 - startofday时间戳,而是使用语言日历计算。

答案 1 :(得分: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;
?>