0

我们正在使用 mktime 方法创建一个 unix 时间戳,并提供以下属性:

print_r(mktime(0,0,0,3,1,2009));
print_r(mktime(null,null,null,3,1,2009) / 60 / 60 / 24) . "days");`

这产生了一个结果

1235862000

14303.958333333 days

这应该是 14304 天。在这种情况下,问题是冬季时间。您可以使用 is_dst 参数,当我们使用 0(默认 -1)时,这有时会正常工作,结果是 14304 天。

但有时这会产生以下问题:

严格标准:mktime() [function.mktime]:is_dst 参数已弃用

我不知道这意味着什么以及我能做些什么。有人知道吗?因为冬天的时候会导致可怕的头痛......

4

3 回答 3

2

使用gmmktime

于 2009-03-30T09:30:20.617 回答
2
date("I", time());

如果是夏令时,会给你 1,如果不是,会给你 0。

于 2009-03-30T10:08:59.277 回答
2

从 php 手册页:

“如果时区无效,每次调用日期/时间函数都会生成 E_NOTICE,如果使用系统设置或 TZ 环境变量,则生成 E_STRICT 消息。另请参见date_default_timezone_set()

这可能意味着您应该以前使用date_default_timezone_set()并跳过 is_dst 参数

于 2009-03-30T10:13:36.613 回答