如何将时间格式从数字转换为字符串?

时间:2012-01-08 05:53:56

标签: php cakephp cakephp-1.3

我从创建的字段日期和时间中获取此格式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; ?>

5 个答案:

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

date_create_from_format

答案 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文档。

谢谢,