使用date()php的错误日期结果

时间:2014-10-31 14:34:30

标签: php parsing date strtotime

我想使用1938&解析日期1938+02:00 date() strtotime()

我的代码:

echo date("Y", strtotime("1938+02:00"));

给我结果" 2014" ..

我做错了什么?

3 个答案:

答案 0 :(得分:5)

对于这样的事情,只需获取字符串的前四个字符。无需处理日期等:

echo substr('1938+02:00', 0, 4);

Demo

但如果您坚持使用日期功能,则需要使用DateTime::createFromFormat(),因为日期字符串不是标准格式。

$date = DateTime::createFromFormat('YP', '1938+02:00');
echo $date->format('Y');

Demo

答案 1 :(得分:0)

date("Y");仅返回年份。这就是Y的作用。

有关其他选项,请参阅date的手册页。

修改

另一件需要考虑的事情是,时间戳只能追溯到1970年。这就是时间戳(自1970年以来的秒数)。

所以,这会给你一个时间戳的负值。

答案 2 :(得分:-1)

您的日期字符串格式不合适。 herestrtotime

的可接受格式列表