CakePHP3显示一小时差异的日期

时间:2016-02-11 20:56:41

标签: php cakephp

我正在使用CakePHP3框架。在我的MySQL数据库中,我有一个datetime字段。在这个我有,例如这个日期时间:2016-02-10 15:30:51。当我从CakePHP中捕获这个字段时,我得到了正确的日期时间,因为如果我做了一个" var_dump()"我得到了:

 object(Cake\I18n\Time)[326]
  public 'date' => string '2016-02-10 15:30:51' (length=19)
  public 'timezone_type' => int 3
  public 'timezone' => string 'America/Buenos_Aires' (length=20)

但如果我这样做

<?= $object->datetime_field ?> 

我得到了:&#39; 2016-02-10 16:30:51&#39; 。它是相同的日期时间,但比存储在MySQL中的时间长1小时,并且显示为var_dump()...为什么?时区是正确的。

1 个答案:

答案 0 :(得分:0)

var dump显示变量(对象)的内容。当您回显Cake \ I18n \ Time对象时,它会自动将时区设置为Cake PHP的时区。对象的时区是'America / Buenos_Aires'CakePHP可能有不同的时区。

您可以在config / bootstrap.php中更改cakephp的默认时区

date_default_timezone_set('America/New_York');

您可以更改Cake \ I18n \ Time对象的时区

$object->setTimezone(new \DateTimeZone('America/New_York'));

在这里阅读更多关于蛋糕蛋糕\ I18n \时间类的信息: https://book.cakephp.org/3.0/en/core-libraries/time.html#dates