我使用相同的代码已经有几年了,PHP5.x,突然在5+和UK的日期格式上遇到了问题。我写了这个小脚本来测试:
<?php
echo "<br /><b>PostDate: 1-7-15</b>";
$format="d-m-y";
$date="1-7-15";
$c = strtotime($date);
echo "<br /><b>Unix TS: - ".$c."</b>";
$a = date($format,$c) ;
echo "<br /><b>Unix TS to date - ".$a."</b>";
echo "<br /> <br />";
echo "<br /><b>PostDate: 7/1/15</b>";
$format="m/d/y";
$date="7/1/15";
$c = strtotime($date);
echo "<br /><b>Unix TS: - ".$c."</b>";
$a = date($format,$c) ;
echo "<br /><b>Unix TS to date - ".$a."</b>";
?>这将输出以下内容:
PostDate: 1-7-15
Unix TS: - 995173200
Unix TS to date - 15-07-01
PostDate: 7/1/15
Unix TS: - 1435726800
Unix TS to date - 07/01/15你可以清楚地看到,英国的版本是不正确的,美国的版本是正确的。英国版本未正确转换为Unix时间戳。
就像我之前说的,我多年来一直这样使用strtotime,突然出现了这些结果?我是不是疯了?
发布于 2016-07-16 12:28:10
我改了行:
$c = strtotime($date);至:
$c=strtotime(date($format, strtotime($date)));而且它适用于所有的日期格式,甚至是d M y。
https://stackoverflow.com/questions/38407160
复制相似问题