【发布时间】:2017-03-24 06:13:09
【问题描述】:
我有一个 PHP 日期时间对象,我一直在尝试使用 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 即今天的日期
【问题讨论】:
-
如何创建
$myDateObject?你能创造一个小提琴吗? -
是否回显
date('Y-m-d');也给出了错误的日期?您的 php 设置要使用哪个时区?试试date_default_timezone_get。