ORM 原则中写入和读取日期时间的问题

Posted

技术标签:

【中文标题】ORM 原则中写入和读取日期时间的问题【英文标题】:Trouble with Write & Read DateTime in ORM Doctrine 【发布时间】:2016-12-31 12:48:16 【问题描述】:

我在 Zend Framework 中使用 ORM 原则从数据库中提取 DataTime 类型的数据时遇到问题。

出现这个问题,因为我真的不明白如何处理这种类型的数据。你能帮我解决这个问题吗?

我需要显示新闻日期。我试过了:$item->getDate(),但是页面显示了

“错误 500”。

在 var_dump($item->getDate()); 之后我明白了:

<?php 
foreach ($articles as $item)  
$category = $item->getCategory(); 
$edit = $this->Url('admin/add-edit-delete', array('action'=>'action', 'subAction'=>'edit', 'element' => 'news', 'newsTitle' => str_replace(" ","-",$item->getTitle()), 'id'=>$item->getId()),null,true); 
$delete = $this->Url('admin/add-edit-delete', array('action'=>'action', 'subAction'=>'delete', 'element' => 'news', 'id'=>$item->getId()),null,true); 
$show_article = $this->Url('news/article', array('action' => 'article', 'title' => str_replace(' ', '-', str_replace('!', '', $item->getTitle())), 'id' => $item->getId()),null,true); 
$count_comment = "<span class='badge' style='float: right' data-toggle=\"tooltip\" data-placement=\"left\" title=\"Количество комментариев\">$item->getComments()->count()</span>"; 
$title = ($item->getComments()->count() != 0)?'Открыть список комментариев к статье':null; 

if ($category)  
$categoryKey = $category->getCategoryKey(); 
 else  
$categoryKey = 'категория не указана'; 
 

if ($item->getIsPublic())  
$isPublic = 'да'; 
 else  
$isPublic = 'нет'; 
 

echo " 
<tr> 
<td>$item->getId()</td> 
<td>$categoryKey</td> 
<td><p data-toggle=\"tooltip\" data-placement=\"right\" title=\"$title\"><a href='' data-toggle='modal' data-target='#myModal-comments-$item->getId()'>$item->getTitle()</a>$count_comment</p></td> 
<td></td> 
"; 
echo " 
<td>$isPublic</td> 
<td style=\"text-align: right; width: 76px\"> 
"; 
echo ' 
<a href="'.$edit.'" data-toggle="tooltip" data-placement="left" title="Редактировать"><span class="glyphicon glyphicon-edit" style="color: #808080"></span></a> 
<a href="'.$delete.'" data-toggle="tooltip" data-placement="left" title="Удалить"><span class="glyphicon glyphicon-trash" style="color: #808080"></span></a> 
'; 
echo " 
</td> 
</tr> 
"; 
 
?>

【问题讨论】:

请复制粘贴并重新格式化您的代码而不是屏幕截图... 错误 500 是一般服务器错误。做一个 var_dump($item),它说什么? @AlFoиceѫ 我在帖子末尾添加了代码和 var_dump 的结果。 如转储所示,getDate 返回一个 php DateTime 对象。 php.net/manual/en/class.datetime.php。你需要得到一个字符串表示。类似 $item->getDate()->format('Y-m-d H:i:s'); @Cerad 非常感谢!代码的平静解决了我的问题。将您的评论写为答案-我会将其标记为最佳答案。 感谢您的提议,但在这种情况下,最好发布您自己的答案。显示您实际更改的代码。 【参考方案1】:

感谢@Cerad,这是一个问题的解决方案:

echo ($item->getDate() != null) ? $item->getDate()->format('d.m.Y') : "Дата не указана";

【讨论】:

以上是关于ORM 原则中写入和读取日期时间的问题的主要内容,如果未能解决你的问题,请参考以下文章

读取 xls,将所有日期转换为正确格式,-> 写入 csv

设置 Rails cookie 的开始日期和到期日期

检索日期中给定年份的所有 ORM 记录

如何在sequelize ORM中使用从时间戳中选择并提取日期到月份和年份?

Power Automate:将空日期字段写入 SharePoint

Twig,显示日期时间集合?