日期和日期错误的日期格式的strtotime?

时间:2012-09-02 22:21:44

标签: php date strtotime

我对约会和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)。案件结案

1 个答案:

答案 0 :(得分:1)

好像你在Windows下,不支持date的负时间戳。

因此strtotime('1970-01-01 00:00:00')返回负值并按date()格式化 - 负数变为0,因此您获得的偏移量等于您的TZ偏移量。

对于1970-01-01 02:00:00strtotime的结果为3600(距离UTC为1小时+ 1小时),此值为正,因此可以正常工作。

PS:正如@Mark Ba​​ker指出的那样 - 它很久以前就被修复了,但它在Windows版本中出现了,这是案例的唯一解释

PPS:根据问题中的评论 - 似乎一切正常(不确定OP如何得到错误的值)