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

Php 从午夜到特定日期时间有多少秒,php,datetime,time,timestamp,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 有没有一个简单的方法可以做到这一点呢?一天是24小时是60分钟是60秒是1000毫秒,所以时间戳%(24*60*60*1000)可能会起作用,至少如果您与epoch php使用的时区相同(或者无论时间戳来自何处)。它至少不会

有没有一种简单的速记方法可以计算某个日期时间过了午夜多少秒?不是离现在还有多少秒,而是那一天过去的几秒

例如:

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

有没有一个简单的方法可以做到这一点呢?

一天是24小时是60分钟是60秒是1000毫秒,所以时间戳%(24*60*60*1000)可能会起作用,至少如果您与epoch 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;
?>

也许更干净的代码应该是使用strotime(“午夜”)



为什么不提取小时、分钟和秒,然后计算(小时*60+分钟)*60+秒?或者你的时间戳的格式是什么?它的格式如图所示。我最初的方法是做一些类似mktime(0,0,0,strotime(date('m',$stamp)),strotime(date('d',$stamp)),strotime(date('Y',$stamp)),但我想知道是否有一个速记版本,这实际上对我有帮助,特别是最后一句话,我不知道你能做strotime(“午夜”,“$stamp”)为了得到邮戳的午夜,这正是我所追求的。我已经接受这一点作为任何未来用户的答案,因为它可能更接近我所使用的方法
<?php
$date = "2015-04-12 09:20:00";

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

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