PHP 5.x strtotime 无法正确解析英国格式 d-m-y

标签 php mysql date strtotime date-formatting

我已经使用相同的代码 PHP 5.x 5 年多了,突然我遇到了 strtotime 和 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,突然出现这些结果?我是不是疯了?

最佳答案

我改了行:

$c = strtotime($date);

收件人:

$c=strtotime(date($format, strtotime($date)));

它适用于所有日期格式,甚至 d M y。好奇怪……

关于PHP 5.x strtotime 无法正确解析英国格式 d-m-y,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38407160/

相关文章:

php - 从按钮按下事件运行 SQL 查询

php exec() 没有执行命令

mysql - 将本地 TIMESTAMP 时间转换为 UTC 时间

php - 在mysql数据库中保存一段时间的最佳方法?

python - 使用默认备份Python将字符串转换为日期对象

date - Google 表格条件格式日期

php - 无法在 XAMPP Windows 上安装 MongoDB PHP 驱动程序

php - php -l 检查是否适用于较旧/过去和 future PHP 版本的 PHP 文件?

php - 用MySQL和PHP制作标签云

sql - 如何使用 date_trunc 函数进行双周分组