所以我使用strtotime:
将这个字符串转换为时间戳strtotime("1 Nov, 2001");
得到时间戳1320177660
但是当我再次尝试使用在线时间戳转换器将1320177660转换为正常日期格式时,这一年最终是2011年而不是2001年…
我做错了什么?
正如@Evan Mulawski的评论所说,"2001"被理解为时间,而不是年份。去掉逗号,让PHP将"2001"解释为年份:
<?php
$ts = strtotime("1 Nov 2001");
echo $ts . "n";
$st = strftime("%B %d, %Y, %H:%M:%S", $ts);
echo $st . "n";
?>
输出:1004590800
2001年11月1日,00:00:00
你没有做错什么,只是strtotime不是绝对正确的。
因此,如果您知道字符串总是采用某种格式,那么有时建议您自己解析日期,或者如果您正在运行PHP 5.3。您可以使用DateTime::createFromFormat为您解析字符串如果strtotime()不工作,那么尝试这个
strtotime(。大小写不敏感 ('/','', $ 日期));
它将正常工作。不要在date中使用'/',因为当你格式化它时,它可能会检测到这种类型的问题。由于