如何使用PHP中的is_dst参数获取正确的时间戳?

时间:2009-03-30 09:25:19

标签: php datetime mktime

我们正在使用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参数

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

3 个答案:

答案 0 :(得分:2)

使用gmmktime

答案 1 :(得分:2)

date("I", time());

如果夏令时会给你1,如果没有则会给你0。

答案 2 :(得分:2)

从php手册页:

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

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