PHP datetime format()日期不正确

时间:2017-03-24 06:13:10

标签: php datetime

我有一个PHP datetime对象,我一直试图将其转换为DateTime :: format()的字符串。但这一直给我一个错误的约会。出于某种原因,我不断得到一个日期,即我运行代码的前一天,无论我给出的日期值是多少。 我的DateTime对象 -

object(DateTime) {
   date => '2017-03-25 00:00:00'
   timezone_type => (int) 3
   timezone => 'UTC'
}

我使用它将DateTime格式化为字符串 -

$myDateObject->format('Y/m/d')

给我 -

2017/03/23

在打印DateTime对象的行和格式化对象的行之间绝对没有代码,即对对象没有进行任何修改。

如果它有助于我的服务器date -u的输出返回Fri Mar 24 06:08:39 UTC 2017。此外,如果我使用$myDateObject->format('Y/m/d h:i')创建包含小时和分钟的日期字符串,则会获得2017/03/23 12:00

修改

date_default_timezone_get()的输出为UTC

date('Y-m-d')提供2017-03-24即今天的日期

1 个答案:

答案 0 :(得分:0)

在PHP中查看default time zone set 您可能想尝试设置默认时区示例:date_default_timezone_set(' America / Toronto');