我从创建的字段日期和时间中获取此格式2011-3-10 17:26:50
,我想转换为此格式March 13, 2010
如何使用php或cakephp 1.3
<?php
$i = 0;
foreach($articles as $$article ):
?>
<tr>
<td><?php echo $article['Article']['title']; ?></td>
<td><?php echo $article['Article']['created'];;?></td>
</tr>
<?php endforeach; ?>
答案 0 :(得分:2)
我认为你的意思是“取出”,就像从MySQL中检索一样。最简单/最快(但也最喜欢炸掉你的狗)就是简单地做
$timestamp = strtotime($date_from_database);
$formatted = date('F j, Y', $timestamp);
答案 1 :(得分:2)
PHP有一个函数strtotime($string)
,它将采用各种格式的日期/时间字符串(包括MySQL的日期时间格式)并将其转换为Unix时间戳整数(自 1970-01以来的秒数) -01 00:00:00 UTC )。然后,您可以使用date('F j, Y', $time)
将该整数转换为您想要的任何字符串表示形式,使用找到的标记here
另外两个考虑因素是本地化和时区感知。我不会进入第一个,因为它似乎不需要它,但在时区很重要的情况下,使用PHP的DateTime类可以更容易,你可以阅读 [here]。这是一个例子:
<?php
// for example, if you're storing times in UTC in your DB
$dbTimezone = new DateTimeZone('UTC');
// we'll use this for displaying times in the user's timezone.
// for example, my timezone:
$displayTimezone = new DateTimeZone('America/Toronto');
foreach ($articles as $article):
// Create a timezone-aware DateTime object from your article's creation date
$dt = new DateTime($article['Article']['create'], $dbTimezone);
$dt->setTimezone($displayTimezone);
echo $dt->format('F j, Y');
endforeach;
答案 2 :(得分:0)
echo date('F d, Y',date_create_from_format('Y-n-d h:i:s','2011-3-10 17:26:50'));
答案 3 :(得分:0)
这将解决它:
$date = date_create_from_format('Y-m-j H:i:s', $article['Article']['created']);
echo date_format($date, 'F d, Y');
答案 4 :(得分:0)
您可以轻松使用Cakephp Time Helper。
//Add to appcontroller or articles_controller
var $helpers = array('Time');
//Add this to view file
echo $this->Time->niceShort($article['Article']['created']);
除了niceShort
之外,还有更多选项可以更好地满足您的需求。检查CakePHP文档。
谢谢,