如何将字符串格式化为日期

时间:2012-11-10 23:41:13

标签: php date formatting

好的,我试图显示我从数据库中获取的日期

以下是我无需格式化即可显示的内容:2012-11-21 19:00:00

我想要展示的是:2012-11-21 at 19:00:00

下面是代码

$expiryDate = date('Y/m/d', $data[0]->dinExpiry);
$expiryTime = date('H:i', $data[0]->dinExpiry);

这就是我得到的错误;

enter image description here

它显示的日期也是错误的

提前感谢您的帮助

1 个答案:

答案 0 :(得分:3)

简易解决方案

您说您可以在没有任何格式的情况下显示2012-11-21 19:00:00

因此,如果您可以将任意$日期显示为2012-11-21 19:00:00,为什么不将其子串起来:

$dateToDisplay = substr($date, 0, 11).'at '.substr($date, 11, 8);

并将$ dateToDisplay显示为2012-11-21 at 19:00:00

多一点......

在不知道$ data [0] - > dinExpiry的输出的情况下回答这个问题很棘手。 (我假设它给你一个名为$ date的变量)。

正如@Marc B所说,你从1970年开始的这个事实表明它不是一个有效的时间戳(提示:它是一个字符串),所以它被评估为零秒,因为Unix Epoch(1970年1月1日00:00:00 GMT)。

您可以将其转换为有效的时间戳,如下所示:

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

或者匹配您的示例:

$expiryDate = date('Y-m-d', strtotime($data[0]->dinExpiry));
$expiryTime = date('H:i', strtotime($data[0]->dinExpiry));