【发布时间】:2013-04-29 21:02:29
【问题描述】:
我想给 date() 一个日期,如果该日期是否为 DST,则让它返回。在 Windows 7 机器上通过 xampp 运行 PHP 5.4.7。运行 PHP 5.2.8 的 linux 机器无论我给出什么日期都会返回 0。
我的代码有什么问题?
echo date('I', strtotime('30-Mar-2013'));
# should return a 1 but returns 0
echo date('I', strtotime('30-Mar-2013 America/Los_Angeles'))."<br>"; # returns 0
echo date('I', strtotime('31-Mar-2013 America/Los_Angeles'))."<br>"; # returns 1
夏令时之间的切换应在 2013 年 3 月 9 日至 2013 年 3 月 10 日之间。
此时问题来了,为什么我的PHP代码没有返回1。
【问题讨论】:
-
这里返回一个
1。你在用 PHP5 吗? -
PHP 5.4.7 (xampp)。出于某种原因,即使设置了 America/Los_Angeles,它也会为我返回 0。我在 linux 和 windows 机器上试过这个。
-
@Jevgeni Bogatyrjov:
strtotime()不会更改服务器的时区设置,并且生成的时间戳不会存储任何 TZ 信息。