Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php中修改json数组的日期格式_Php_Json - Fatal编程技术网

在php中修改json数组的日期格式

在php中修改json数组的日期格式,php,json,Php,Json,我的问题是我有一个数组如何包含dateTime格式的值,但我想用格式Y-m-d修改这个值。我在这里尝试了很多问题,但在编码json时没有任何效果 现在我知道了: [contacts] => Array ( [0] => Array ( [createdAt] =>2020-01-29T17:00:04.159+01:00 ) ) 我想 [contacts]

我的问题是我有一个数组如何包含dateTime格式的值,但我想用格式Y-m-d修改这个值。我在这里尝试了很多问题,但在编码json时没有任何效果

现在我知道了:

[contacts] => Array (
                    [0] => Array (
                     [createdAt] =>2020-01-29T17:00:04.159+01:00
                   )
)
我想

[contacts] => Array (
                    [0] => Array (
                     [createdAt] =>2020-01-29
                   )
)
我的php代码是:

$contacts=$result[contacts];
foreach ($contacts as $contact) {

$time = new DateTime($contact['createdAt']);
$date = $time->format('Y-m-d');
echo '<br>' .$date; //that show the date format I want
}
//that don't show correct format
 $json=json_encode($contacts);
 print_r($json); 
$contacts=$result[contacts];
foreach($contacts作为$contact){
$time=新日期时间($contact['createdAt']);
$date=$time->format('Y-m-d');
echo“
”.$date;//显示我想要的日期格式 } //显示的格式不正确 $json=json_encode($contacts); 打印(json);

有人能帮我吗?

你可以用
&
修改你的
$contact
数组:

foreach ($contacts as &$contact) {

    $time = new DateTime($contact['createdAt']);
    $contact['createdAt'] = $time->format('Y-m-d'); 
}

只需在代码中做以下更改,就可以在联系人数组中重新分配值

        foreach ($contacts as $key => $contact) {
            $time = new DateTime($contact['createdAt']);
            $date = $time->format('Y-m-d');
            echo '<br>' .$date; //that show the date format I want
            $contacts[$key]['createdAt'] = $date;
        }
foreach($contacts as$key=>$contact){
$time=新日期时间($contact['createdAt']);
$date=$time->format('Y-m-d');
echo“
”.$date;//显示我想要的日期格式 $contacts[$key]['createdAt']=$date; }

它将在您现有的元素中重新分配新的日期值

您能提供您的代码吗?是的,很抱歉,我忘记使用我的php代码了!非常感谢,我不知道我们能做到