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


Weird strtotime() issue - reading as incorrect format

服务器的区域设置正确,在其他域上似乎很好。。。然而,我目前遇到了一个奇怪的问题。

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

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

它返回一个7月9日的时间戳,就像它以美国格式读取日期一样。我检索到了时区,它被设置为欧洲/伦敦(通过使用date_default_timezone_get)。

有什么想法吗?

$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

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

strtotime将其读取为US格式。最好使用ISO yyyy-mm-dd。

有关有效的日期格式