PHP:数组中的DATETIME作为对象.怎么回声

iam*_*esy 9 php arrays datetime object

希望标题不要太神秘.我有一个带有DATETIME对象的数组,我只想弄清楚如何将它回显到页面.

 ["created"]=> object(DateTime)#3 (3) { ["date"]=> string(19) "2010-10-22 00:00:00" ["timezone_type"]=> int(3) ["timezone"]=> string(13) "Europe/London"
Run Code Online (Sandbox Code Playgroud)

有人可以帮我吗?

试过date()但得到:

Warning: date() expects parameter 2 to be long, object given in C:\
Run Code Online (Sandbox Code Playgroud)

任何最感谢的帮助,

Jonesy

Pek*_*ica 11

使用DateTime::format().掩码语法与date()'s' 相同.

echo $value->format('Y-m-d H:i:s');
Run Code Online (Sandbox Code Playgroud)


Kam*_*her 5

即使我不确定它是否专门回答了这个问题,我也添加了这个答案(尽管最佳答案已经存在),但是我找不到其他提及上述格式(date/ timezone_type/ timezone)的地方。

如果您将日期从对象转换为数组

  • 通过 var_export

DateTime::__set_state(array( 'date' => '2017-12-05 11:58:25.428595', 'timezone_type' => 3, 'timezone' => 'US/Pacific', ))

  • 要么 json_encode

{"date":"2017-12-05 11:57:07.938671","timezone_type":3,"timezone":"US\/Pacific"}

您可以再次使用上述DateTime::__set_state魔术方法将其再次转换为DateTime对象

不知道这里__set_state怎么双向,但是它确实神奇。我找不到文档。

但您可以在此处进行测试:http : //sandbox.onlinephpfunctions.com/code/0a18e6937e7d4373beb91713f2e6e5f75f9af3e2

  • 题外话但很有用。 (4认同)