如何使用 PHP 中的 is_dst 参数获取正确的时间戳?
题
我们正在使用 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 参数
我不知道这意味着什么以及我能做些什么。有人知道吗?因为冬天的时候会引起严重的头痛......
解决方案
使用 gmmktime 。
其他提示
date("I", time());
会给你1,如果其夏令和0如果它不是
从 php 手册页:
“如果时区无效,则每次调用日期/时间函数都会生成 E_NOTICE,和/或如果使用系统设置或 TZ 环境变量,则会生成 E_STRICT 消息。也可以看看 date_default_timezone_set()"
这可能意味着你应该使用 date_default_timezone_set() 之前并跳过 is_dst 参数
不隶属于 StackOverflow