DST 和 PHP 日期和时间戳
Posted
技术标签:
【中文标题】DST 和 PHP 日期和时间戳【英文标题】:DST and PHP Date and Timestamps 【发布时间】:2016-04-05 18:14:32 【问题描述】:我已经在列表中搜索了先前的答案,但找不到。我们正在使用 php 4.4.8 并且需要 PHP 4 的答案。我们有一个时间戳数组 [$d] 表示:
1478404800 2016-11-06 00:00:00
1478494800 2016-11-07 00:00:00
2016-11-06 是夏令时到标准时间的过渡日。
我们想要存储一个代表每天下午 1:00 的时间戳,所以我们做到了
$e2 = $d+46800
46800 相当于 13 小时的秒数。
date("D d M Y g a I",$e2)
返回:
2016 年 11 月 6 日星期日 12 点 0
2016 年 11 月 7 日星期一下午 1 点 0
后面的 0 是 DST 指示符。 11 月 6 日似乎将 DST 指示为 STD“回退”1 小时。我们不希望 DST 被反映。
所以问题是:
我们如何获得不反映 DST 到 STD 的 11 月 6 日答案。
如果这是夏令时,为什么是一天? 11 月 7 日没有得到任何“回退”
用户不在不同的时区,所以我们不必担心时区。
【问题讨论】:
“我们不必担心时区”没有意义。 DST仅适用于特定时区。整个世界都没有夏令时,拥有夏令时的人并非都在同一日期或一天中的同一时间进行。因此,时区适用于您的问题,或者您的问题不涉及 DST。你不能同时拥有它。 我们所有的用户都在一个时区。我们不需要一个可以跨多个时区使用不同 DST 的解决方案。 了解您使用的哪个时区会有所帮助。 我们在美国/洛杉矶时区。 您使用的是哪个版本?真的吗? 【参考方案1】:目前尚不清楚您确切要求的是什么,但如果您唯一关心的是 date()
返回值 - 告诉 PHP 创建正确的 UNIX 时间戳:
mktime(13, 0, 0, 11, 6, 2016);
不过,我更担心您在这个日期仍在运行 PHP 4。
【讨论】:
以上是关于DST 和 PHP 日期和时间戳的主要内容,如果未能解决你的问题,请参考以下文章