0

我有这个代码:

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

此时,$date 包含:

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

现在我正在尝试将日期输出为输入 type="date" 友好格式,如下所示:

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

但它不会正确输出。

如果我将 type="date" 更改为 type="text" 我会看到以下输出:

1969-12-31

显然有些东西不正常

date('m-d-Y', strtotime($date));

谁能帮我解决问题?

4

3 回答 3

2

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

于 2012-12-30T22:27:16.597 回答
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'),因为日期格式在月份和年份方面不明确。

于 2012-12-30T22:29:15.267 回答
0

移除

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

解决问题。

于 2012-12-30T22:40:57.770 回答