2

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

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

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

4

2 回答 2

9

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

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

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

$date = new DateTime('17 Jan 1900');
echo $date->format('Y-m-d');
于 2012-04-06T10:01:49.157 回答
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类。

于 2012-04-06T09:57:36.007 回答