我有这样一个日期:星期三,2014年5月21日。
要在数据库中保存这个日期,我正在尝试将其转换为datetime,如下所示:
$f['date'] = $_POST['date'];
$date = DateTime::createFromFormat('l, j F, Y', $f['date']);
$date = $data->format('Y-m-d H:i:s');
然后我将$date插入到我的数据库中,并且工作正常,date在数据库中像datetime一样保存。
但是现在我想显示日期,所以我想再次转换它,以这种格式:"Wednesday, 21 May, 2014"。
为此,我做我的选择,然后我再次使用DateTime::createFormat转换日期,从DateTime到我的"文本格式":
$readNews = $pdo->prepare("SELECT * FROM news");
$readNews->execute();
while ($readNewsResult = $readNews->fetch(PDO::FETCH_ASSOC))
{
$date = DateTime::createFromFormat('l, j F, Y', $readNewsResult['date']);
..... //here I have more echos showing title of the news, etc
echo '<span class="date">'.$date.'</span>';
}
我的问题是日期没有出现…
你看到我哪里做错了吗?这里不需要DateTime::createFromFormat()
。只有当你有一个PHP无法理解的日期格式时,你才需要使用DateTime::createFromFormat()
。你已经有了DateTime()
可以处理的格式。
所以你所需要做的就是在打印出来的时候改变格式,你将使用DateTime::format()
:
$date = new DateTime($readNewsResult['date']);
echo '<span class="date">'.$date->format('l, j F, Y').'</span>';