奇怪的strtotime()问题 - 读取不正确的格式

时间:2012-09-07 12:01:42

标签: php date

服务器的语言环境设置正确,在其他域名上似乎没问题......但是我目前遇到了一个奇怪的问题。

如果我直接strtotime('now');,它会返回正确的时间戳(今天我的时区的日期/时间),但如果我这样做:

strtotime('07/09/2012 13:48');

它返回7月9日的时间戳,就像它以美国格式阅读日期一样。我已经检索了时区,并将其设置为Europe / London(使用date_default_timezone_get)。

有什么想法吗?

3 个答案:

答案 0 :(得分:2)

$date = DateTime::createFromFormat('d/m/Y H:i', '07/09/2012 13:48');
echo $date->format('Y-m-d H:i');

http://www.php.net/manual/en/datetime.createfromformat.php

答案 1 :(得分:1)

使用DateTime类和DateTime :: createFromFormat()方法。

答案 2 :(得分:0)

strtotime将其视为美国格式。最好使用ISO yyyy-mm-dd。

See this for valid date formats