php strtotime返回错误的时间戳

时间:2013-10-07 19:47:51

标签: php time timestamp strtotime

我使用php strtotime功能 (日期格式Day, month and two digit year, with dots or tabs d.m.y来自doc:http://www.php.net/manual/en/datetime.formats.date.php) 并发现问题:

来自php.net示例strtotime(" 30.6.08") - > 1214773200 - >太阳,2008年6月29日21:00:00 GMT(反转右)

另一种变体strtotime(" 24.10.13") - > 1381180213 - >周一,2013年10月7日21:10:13 GMT(反向不对)

但是strtotime(" 30.10.13") - > 1383084000 - > 2013年10月29日星期二22:00:00格林威治标准时间(反复结果再次正确)

怎么了?

1 个答案:

答案 0 :(得分:4)

Strtotime猜测你发送日期的格式和猜测是错误的。您应该使用DateTime(),您可以在其中指定发送日期的格式。

$date = DateTime::createFromFormat('d.m.y', $datestring);
echo $date->format('Y-m-d');