舍入PHP时间戳
什么是一个很好的解决方案来将时间戳记到一小时?
例如,在使用date('dmy h:m', time())
,我得到了'02 .08.11 7:07'......现在,我想从这里获得7:00的时间戳。
我怎样才能做到这一点?
更新
在看到格雷格米勒的“时间编程基础”讨论谷歌的cctz C ++库之后,我对之前的回答感到不满。
处理时间是一个非常复杂的话题(即使在折扣相对论效应时)。 我们必须尊重诸如具有不均匀偏移,夏令时,由于立法更改或闰秒导致的时间跳跃以及可能更多的怪癖等时区。 虽然其中许多只对时间和空间产生局部影响,但我们节目的用户仍然可能不幸受到影响。
TL; DR
最好是依靠像holodoc的答案那样的基础功能来处理时区管理的怪癖。
旧答案
当我没有记错的时间戳是从1970年1月1日0:00开始的,所以它应该足以将它除以3600(浮动),然后是round / floor / ceil并乘以3600(整数)。 该部门必须是全天候/小时工作的浮点。
舍入示例:
round($timestamp/3600)*3600
7:20 -> 7:00
7:40 -> 8:00
地板样品:
floor($timestamp/3600)*3600
7:20 -> 7:00
7:40 -> 7:00
天花板样品:
ceil($timestamp/3600)*3600
7:20 -> 8:00
7:40 -> 8:00
曾想过取消会议纪要? :)
echo date('d.m.y h:00', time());
如果你需要开始分钟的时间戳记只是改变你的data
论证了一下,使用的strtotime。
echo strtotime(date('d.m.Y H:00:00', time()));
将小时和分钟捕捉成2个不同的变量。 如果分钟大于等于30,则在小时内加1。
不是最优雅的解决方案,但它的工作原理。 :)
链接地址: http://www.djcxy.com/p/3063.html