我有一個待辦事項列表應用程序正在處理。它顯示創建待辦事項時的時間戳,甚至允許用戶選擇格式應該是什麼。時間戳記爲「X天之前」,無法正確修改腳本
在這個片段中,該代碼抓住信息從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拉) 「M試圖執行這些代碼:
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;
}
我$date_created
更換$dt
和嘗試不同的組合技,但我似乎無法得到它的權利。我有一個前端錯誤告訴我relativetime是未定義的(它沒有在錯誤消息中說relativeTime,它有一個小寫的「t」)。我能做些什麼來讓$date_created
以「日前」格式顯示?謝謝!
你能提供一段代碼,你在哪裏調用relativeTime函數嗎?它是不是偶然地在某個班內被封裝? – heximal 2012-07-17 07:40:12