我有一个正在开发的待办事项列表应用程序。它显示创建待办事项时的时间戳,甚至允许用户选择格式。
在此代码段中,代码从 mySQL 数据库中获取信息以查看如何格式化日期:
public function __toString(){
// The string we return is outputted by the echo statement
if ( $this->data['date_created'] == '') {
$date_created = date($GLOBALS["config"]["date_format"].' '.$GLOBALS["config"]["time_format"]);
}
else
$date_created = date($GLOBALS["config"]["date_format"].' '.$GLOBALS["config"]["time_format"], strtotime($this->data['date_created']));
(它是从名为 date_format 的行和名为 time_format 的行中提取的)
我正在尝试实现此代码:
function relativeTime($dt,$precision=2) {
if(is_string($dt)) $dt = strtotime($dt);
$times=array( 365*24*60*60 => "year",
30*24*60*60 => "month",
7*24*60*60 => "week",
24*60*60 => "day",
60*60 => "hour",
60 => "minute",
1 => "second");
$passed=time()-$dt;
if($passed<5)
{
$output='less than 5 seconds ago';
}
else
{
$output=array();
$exit=0;
foreach($times as $period=>$name)
{
if($exit>=$precision || ($exit>0 && $period<60)) break;
$result = floor($passed/$period);
if($result>0)
{
$output[]=$result.' '.$name.($result==1?'':'s');
$passed-=$result*$period;
$exit++;
}
else if($exit>0) $exit++;
}
$output=implode(' and ',$output).' ago';
}
return $output;
}
我更换$dt
并$date_created
尝试了不同的组合,但我似乎无法做到正确。我有一个前端错误告诉我相对时间未定义(它没有在错误消息中说 relativeTime,它有一个小写的“t”)。我该怎么做才能$date_created
以“几天前”的格式显示?谢谢!