获取给定日期的确切分钟数

时间:2016-10-14 16:15:22

标签: php datetime dst

通常,正常日有1440分钟(60分钟/小时* 24小时)。但是,由于夏令时,可以是1380分钟(60分钟/小时* 23小时)或1500分钟(60分钟/小时* 25小时)。

如果在提供php的DateTime对象时,如何在给定日期找到确切的分钟数?

例如,2016年3月13日,DST在美国开始(因此是23小时工作日),2016年11月6日,DST在美国结束(因此是25小时工作日)。 2016年5月1日是正常的24小时工作日。我希望有一个函数可以返回以下内容:

$lomg= new DateTime('November 6, 2016T07:23:11');
$short= new DateTime('March 13, 2016T19:17:53');
$regular = new DateTime('May 1, 2016T22:45:00');

getMinutes($short); // Returns 1380
getMinutes($long); // Returns 1500
getMinutes($regular); // Returns 1440

1 个答案:

答案 0 :(得分:0)

以下应该(原则上)工作:

<?php


$dt = new DateTime();    
$dt->setTimestamp(1457827200);    
$dt->modify("today"); //Set to 00:00:00
$dt2 = clone $dt;     // Copy to new instance
$dt2->modify("+1 day");

var_dump(($dt2->getTimestamp() - $dt->getTimestamp())/60);

(完全免责声明,未对其进行测试)

相关问题