0
以某種方式可以更改json_encode(['date' => $dateTimeObj])
的輸出嗎?在json_encode中更改DateTime的輸出
現在它打印
{
"date": {
"date": "2016-10-27 11:23:52.000000",
"timezone_type": 3,
"timezone": "Europe/Paris"
}
}
我想有這樣
{
"date": "2016-10-27T11:23:52+00:00"
}
我最初的想法輸出是創造這將延長日期時間我自己的DateTime類,並覆蓋jsonSerialize,但日期時間做沒有實現JsonSerializable接口,__toString也沒有幫助。
我正在使用PHP 7.0.8。
我的意思是這樣的
<?php
MyDateTime extends \DateTime implements jsonSerialize
{
public function jsonSerialize() // this is never called
{
return $this->format("c");
}
}
$datetime = new MyDatetime();
$output = [
'date' => $datetime; // want to avoid $datetime->format("c") or something like this everywhere
];
json_encode($output);
此代碼現在輸出
{
"date": {
"date": "2016-10-27 11:23:52.000000",
"timezone_type": 3,
"timezone": "Europe/Paris"
}
}
我想有
{
"date": "2016-10-27T11:23:52+00:00"
}
'json_encode()'不處理你給它的任何數據。如果將日期放入對象/數組中,則按照您想要查看的方式對其進行編碼,但它會保持這種狀態。因此,修復添加日期的代碼 – RiggsFolly
基本上...在'json_encode'之前手動將日期格式化爲字符串。 – deceze
@deceze是的,這可能是唯一的方法。我必須爲文章,評論,主題等等返回日期......所以我認爲可以在某個地方以某種方式自動轉換它。 – LiTe