【问题标题】:PHP datetime format() incorrect datePHP datetime format() 日期不正确
【发布时间】: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

标签: php datetime


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2014-10-17
    • 2017-11-10
    • 2010-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-31
    • 1970-01-01
    • 2015-08-19
    相关资源
    最近更新 更多