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 原则中写入和读取日期时间的问题的主要内容,如果未能解决你的问题,请参考以下文章
如何在sequelize ORM中使用从时间戳中选择并提取日期到月份和年份?