PHP日期问题,无法转换1970-01-01之前的日期

时间:2012-04-06 09:56:07

标签: php mysql date

以下代码输出 1970-01-01 ,这是错误的。

<?php
$dob='17 Jan 1900';
$datetime = strtotime($dob);
$dob = date("Y-m-d", $datetime);
echo $dob;
?>

然而,它适用于 $dob = '17 Jan 2000';

2 个答案:

答案 0 :(得分:9)

如果你的PHP版允许它考虑使用DateTime而不是strtotime:

$date = DateTime::createFromFormat('d M Y','17 Jan 1900');
echo $date->format('Y-m-d');

对于介于&gt; = 5.2和&lt; = 5.3之间的PHP版本,只需使用DateTime构造函数:

$date = new DateTime('17 Jan 1900');
echo $date->format('Y-m-d');

答案 1 :(得分:5)

  

时间戳的有效范围通常来自1901年12月13日星期五   20:45:54 GMT到星期二,2038年1月19日03:14:07 GMT。 (这些是日期   对应于32位带符号的最小值和最大值   整数)。但是,在PHP 5.1.0之前,这个范围是有限的   某些系统(例如Windows)上的01-01-1970至19-01-2038。

但是,您可以使用PHP DateTIme类。

相关问题