我对约会和strtotime有一个恼人的问题。
echo date('Y-m-d H:i', strtotime('1970-01-01 00:00:00'));
返回:
1970-01-01 01:00:00
我做错了什么? 1970-01-01 02:00:00
输出正确1970-01-01 02:00
,但我尝试将(外国)格式化日期转换为时间戳,然后输出新的日期格式。
这样做的正确方法是什么,如果不是这样的话?
已解决:该示例有效,因为我的问题是返回1970-01-01 01:00(GMT + 1)的无效日期字符串(布尔值false)。案件结案
答案 0 :(得分:1)
好像你在Windows下,不支持date
的负时间戳。
因此strtotime('1970-01-01 00:00:00')
返回负值并按date()
格式化 - 负数变为0
,因此您获得的偏移量等于您的TZ偏移量。
对于1970-01-01 02:00:00
,strtotime
的结果为3600
(距离UTC为1小时+ 1小时),此值为正,因此可以正常工作。
PPS:根据问题中的评论 - 似乎一切正常(不确定OP如何得到错误的值)