我有这种格式的日期: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,并且工作正常,日期会像数据库中的datetime一样保存。
但是现在我想要显示日期,所以我想以这种格式再次改变它:“2014年5月21日星期三”。
为此,我正在做我的选择,然后再次使用DateTime :: createFormat将日期转换为我的“文本格式”:
$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>';
}
我遇到的问题是它出现的日期......
你看到我在这里做错了吗?
答案 0 :(得分:4)
此处您不需要DateTime::createFromFormat()
。当您有PHP不理解的格式的日期时,您只需要使用DateTime::createFromFormat()
。您已有格式DateTime()
可以处理。
所以您需要做的就是在打印时更改格式,您将使用DateTime::format()
进行格式化:
$date = new DateTime($readNewsResult['date']);
echo '<span class="date">'.$date->format('l, j F, Y').'</span>';