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

sha*_*ikh 2 php mysql date

以下代码输出1970-01-01错误.

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

但是它可以正常工作 $dob = '17 Jan 2000';

gru*_*unk 9

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

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

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

$date = new DateTime('17 Jan 1900');
echo $date->format('Y-m-d');
Run Code Online (Sandbox Code Playgroud)


Sha*_*ngh 5

时间戳的有效范围通常是从格林威治标准时间1901年12月13日20:45:54到格林威治标准时间2038年1月19日星期二03:14:07.(这些是与32位有符号整数的最小值和最大值对应的日期).但是,在PHP 5.1.0之前,在某些系统(例如Windows)上,此范围仅限于01-01-1970至19-01-2038.

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