在Codeigniter中检索当前日期和时间

时间:2010-08-20 09:46:19

标签: datetime codeigniter

如何在Codeigniter中查看视图中的当前日期和时间?

感谢。

编辑:我要做的是从发布日期/时间中减去当前日期/时间并将其显示为“已发布x天前”

3 个答案:

答案 0 :(得分:3)

我将这个助手用于Codeigniter(你可以在这里看到原文:codeigniter forums

我使用此代码:

    <?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

if( ! function_exists('relative_time'))
{
    function relative_time($datetime)
    {
        if(!$datetime)
        {
            return "no data";
        }

        if(!is_numeric($datetime))
        {
            $val = explode(" ",$datetime);
            $date = explode("-",$val[0]);
            $time = explode(":",$val[1]);
            $datetime = mktime($time[0],$time[1],$time[2],$date[1],$date[2],$date[0]);
        }

        $difference = time() - $datetime;
        $periods = array("second", "minute", "hour", "day", "week", "month", "year", "decade");
        $lengths = array("60","60","24","7","4.35","12","10");

        if ($difference > 0)
        {
            $ending = 'ago';
        }
        else
        {
            $difference = -$difference;
            $ending = 'to go';
        }
        for($j = 0; $difference >= $lengths[$j]; $j++)
        {
            $difference /= $lengths[$j];
        }
        $difference = round($difference);

        if($difference != 1)
        {
            $period = strtolower($periods[$j].'s');
        } else {
            $period = strtolower($periods[$j]);
        }

        return "$difference $period $ending";
    }


}

我不确定你是否总是希望它说“天”,这段代码可以做任何事情(比如'49秒前',或'17分钟前',或'6小时前',或者'10天前',或几周或几个月(甚至几年)。如果您所寻找的只是日子,那么改变这个剧本就很容易了。

答案 1 :(得分:0)

你可以使用简单的php函数日期......

<?php echo date("F j, Y, g:i a"); ?>

答案 2 :(得分:0)

你可以这样做

$d1 = new DateTime("2013-07-31 10:29:00");
$d2 = new DateTime("2013-08-02 5:32:12");
echo $d1->diff($d2)->days;