cakephp 3 - 与json通过约会

时间:2016-05-17 16:38:07

标签: json cakephp cakephp-3.0

Cakephp3,我使用Json将数据传递到另一个页面,我的问题似乎在我的新页面上,我的创建日期作为一个刺痛传递,并显示为'2016-05-16T17:21:10 + 0000' 。如何格式化该字符串以留下'2016-05-16'?我已经尝试将其设置为日期,我尝试使用i18nFormat但没有成功。

$http = new Client();
$response = $http->get('http://localhost:8383/mb-be/apis/getmaritimemessagelist.json');
$maritimes = $response->json['content'];
$cnt = count($maritimes);

for ($i=0; $i<$cnt; $i++) {    
    //var_dump($maritimes[$i]);
    echo '<p class="brdr-bttm mrgn-lft-md ">';
    echo  $this->Html->link($maritimes[$i]['title'], array(
            'controller' => 'messages',
            'action' => 'view/'. $maritimes[$i]['id']
        ));
     echo '<br />';

     $date = $maritimes[$i]['created'];
     echo $date; 
     echo '</p>'; 
}

1 个答案:

答案 0 :(得分:0)

我找到了这个问题的解决方案。 在这里,您可以使用DateTime::createFromFormat格式化created date。但由于时区(我猜),T在日期'2016-05-16T17:21:10+0000'内仍有问题。

您可以将此T替换为space,并根据需要格式化created date

$http = new Client();
$response = $http->get('http://localhost:8383/mb-be/apis/getmaritimemessagelist.json');
$maritimes = $response->json['content'];
$cnt = count($maritimes);

for ($i=0; $i<$cnt; $i++) {    
    //var_dump($maritimes[$i]);
    echo '<p class="brdr-bttm mrgn-lft-md ">';
    echo  $this->Html->link($maritimes[$i]['title'], array(
            'controller' => 'messages',
            'action' => 'view/'. $maritimes[$i]['id']
        ));
     echo '<br />';

     $date = $maritimes[$i]['created'];

        //--------- Format created date --------
    $string =  str_replace("T"," ",$date);

    $created_date = DateTime::createFromFormat('Y-m-d H:i:sO',$string)->format('Y-m-d');

    echo $created_date;
     echo '</p>'; 
}