gpt4 book ai didi

php - FrozenTime 对象之谜

转载 作者:行者123 更新时间:2023-11-28 23:13:01 24 4
gpt4 key购买 nike

我在 FrozenTime 对象中发现了一个奇怪的案例。

我从 find() 获取数据,然后照常将其发送到 View 。一个特定字段来自 MySQL 时间列。

表名为sessions,字段名为time

迭代结果集时,此列变为:

object(Cake\I18n\FrozenTime) {

'time' => '2017-07-14T01:00:50+00:00',
'timezone' => 'UTC',
'fixedNowTime' => false

}

当调用 debug($session->time->format('G:i:s')); 时,神秘开始了,我得到了一个对成员函数的调用format() 出现 null 错误。

在尝试解决问题时,我做了:

$moment = $session->time;
debug($moment instanceof \Cake\I18n\FrozenTime);

我得到了一个 true 作为答案。如果它实际上是一个有内容的对象,则为 null 很奇怪(如错误所述)。我希望能够在 FrozenTime 对象上运行 ->format()

运行时更奇怪:

$b = new Cake\I18n\FrozenTime($moment);
debug($b);
debug($moment == $b);

debug($b); 返回上面显示的相同对象 (Cake\I18n\FrozenTime),debug($moment == $b); 返回 。你猜怎么着? $b->format('G:i:s'); 在这一点上工作,它返回类似 1:00:50 的内容(正如我在调用时所期望的那样$session->time->format('G:i:s'));

这是一个错误吗?难道我做错了什么?为什么两个相同的对象以不同的方式表现?

我应该重命名表格和/或字段吗?

任何帮助将不胜感激。谢谢。

最佳答案

解决了!

一个简单的事实:错误只是因为一次时间列返回 NULL 而触发

当你看到它时,它看起来很简单:)

关于php - FrozenTime 对象之谜,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45111933/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com