PHP输出错误的日期

时间:2012-12-30 22:25:02

标签: php html html5 forms date

我有这段代码:

$date = substr($item[8], 7, 9);
$date = str_replace('/', '-', $date);

此时,$ date包含:

12-21-12  <---- December 21, 2012

现在我正在尝试将日期输出到输入类型=&#34; date&#34;友好的格式:

<input type="date" name="date" value="<?php echo date('Y-m-d', strtotime($date)); ?>">

但它不能正确输出。

如果我更改type =&#34; date&#34;输入=&#34; text&#34;我看到以下输出:

1969-12-31

显然,某些东西在

中无法正常工作
date('m-d-Y', strtotime($date));

任何人都可以帮我解决问题吗?

3 个答案:

答案 0 :(得分:2)

日期必须为Y-m-d格式,而不是m-d-Y

答案 1 :(得分:2)

如果您使用的是PHP 5.3+,我鼓励使用DateTime类。

在你的情况下:

$date = DateTime::createFromFormat('m-d-y', '12-21-12');
echo $date->format('Y-m-d'); // 2012-12-21

如前所述strtotime('12-21-12')因为日期格式在月份和年份方面不明确。

答案 2 :(得分:0)

删除

$date = str_replace('/', '-', $date);

解决问题。