我试图在我的数据库(MySQL)中存储一些日期。但是我遇到了一个奇怪的转换错误: 这是我的PHP代码:
$fechanac=mysql_real_escape_string(($_POST["fechanac"]));
echo "<h1>{$fechanac}</h1>";
$fechanac=date('Y-m-d', strtotime(str_replace('/', '-', $fechanac)));
echo "<h1>{$fechanac}</h1>";exit();
参见以下三个例子,尝试(01/01/1900,01/01/1901和01/01/1902)。
输出:
01/01/1900
1970-01-01
1901年1月1日
1970-01-01
1902年1月1日
1902年1月1日
有人知道为什么会这样吗?以及如何解决它?我需要在我的DB中插入可能的生活日期。谢谢阅读。
答案 0 :(得分:0)
存储日期!
$fechanac=mysql_real_escape_string(($_POST["fechanac"]));
echo "<h1>{$fechanac}</h1>";
$datearray=explode("/",$fechanac);
$fechanac="{$datearray[2]}-{$datearray[1]}-{$datearray[0]}";
答案 1 :(得分:0)
我知道这是老帖子,但也许这个迟到的答案可以帮助其他人:
DateTime class 正确管理早于1970年的日期。请忘记使用date()
并演变为DateTime
:< / p>
$fechanac=mysql_real_escape_string(($_POST["fechanac"]));
echo "<h1>{$fechanac}</h1>";
$fechanac=(new DateTime($fechanac))->format('Y-m-d');
echo "<h1>{$fechanac}</h1>";exit();