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>';
}
答案 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>';
}