繁体   English   中英

date&strtotime的日期格式错误?

[英]Wrong date format from 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 ,但是我试图将(外国)格式化的日期转换为时间戳,然后输出新的日期格式。

如果不是这样,正确的做法是什么?

已解决:该示例可行,因为我的问题是无效的日期字符串(布尔值false),该字符串返回1970-01-01 01:00(GMT + 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怎么得到了错误的值)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM