【发布时间】:2016-03-20 23:17:33
【问题描述】:
我指的是这个:Converting ISO 8601 format to d M Y in PHP
我也试过这个:echo date("d M Y H:i:s", strtotime($time));
但是时间没有显示为保存在数据库中。它显示几个小时的差异。
数据库有:2016-03-20T23:30:51+00:00
通过上面的 php echo 我得到:2016 年 3 月 21 日 00:30:51 2016 年 3 月 20 日 23:30:51
上面的例子显示了额外的 1 小时? 我尝试使用这种格式来显示小时和分钟,但显示的时间是错误的。时间显示有几个小时的差异。为什么会这样?
【问题讨论】:
-
你能显示数据库中的原始字符串吗?
-
看起来 strtotime 和 date 以某种方式使用不同的时区。我们可以看一个
$time变量内容的例子吗? -
问题中更新了详细信息。是的,时区不同。
-
@fusion3k 数据库有:
2016-03-20T23:30:51+00:00上面的 php echo 我得到:2016 年 3 月 21 日 00:30:51 必须是 2016 年 3 月 20 日 23:30:51 -
日期为格林威治标准时间。因此,如果 GMT 和您的时区之间的差异是 5 小时,那么您的结果仍然是正确的。