获取格式化的不同日期

时间:2014-11-02 04:25:10

标签: php

我使用以下代码格式化PHP上的日期:

$date = "2014-11-01";
$date_formatted =  gmdate("Y-m-d", strtotime($date));

当我打印它们时,格式化的日期会回溯一天。我很惊讶。我不只是在寻找一个解决方案(对于像这样的简单东西,有很多)。 我想知道发生了什么。

echo $date . " ---> " . $date_formatted;    
//Displays: 2014-11-01 ---> 2014-10-31

1 个答案:

答案 0 :(得分:6)

这是因为您使用gmdate。这将根据提供的时间戳为您提供GMT日期。

strtotime默认使用GMT,而是使用您当地的时区。因此,当您致电gmdate时,它会按时区偏移量缩短日期和时间。

要解决此问题,请使用date代替gmdate或将系统的时区设置为UTC。