如何在Codeigniter中查看视图中的当前日期和时间?
感谢。
编辑:我要做的是从发布日期/时间中减去当前日期/时间并将其显示为“已发布x天前”
答案 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;