2014-03-27 48 views
0

嚴格標準:非靜態方法DateUtility :: subtractDaysFromDate()不應該靜態調用,假設$ this來自/home/zumpu/public_html/cats/cats-0.8中不兼容的上下文.0/modules/activity/ActivityUI.php on line 449靜態標準:非靜態方法日期實用程序

嚴格標準:非靜態方法DateUtility :: addDaysToDate()不應該靜態調用,假設$ this來自/ home/zumpu/public_html中的不兼容上下文/上線貓/貓-0.8.0/LIB/DateUtility.php 285

public function subtractDaysFromDate($startDate, $daysToSubtract) 
    { 
     return self::addDaysToDate($startDate, ($daysToSubtract * -1)); //285 line 
    } 

//第一錯誤代碼行449

private function makeQuickLinkURL($dayOfWeek) 
    { 
     /* PHP's date('w') uses 0-6 to represent weekdays, but the CATS weekday 
     * constants use 1-7. 
     */ 
     $dayOfWeek--; 

     $currentDate = time(); 
     $daysDifference = date('w', $currentDate) - $dayOfWeek; 

     $linkDate = DateUtility::subtractDaysFromDate($currentDate, $daysDifference);//**line 449** 

     switch ($daysDifference) 
     { 
      case -1: 
       $dayString = '<span style="display: inline;">Tomorrow</span>'; 
       break; 

      case 0: 
       $dayString = '<span style="color: #ff6600; display: inline;">Today</span>'; 
       break; 

      case 1: 
       $dayString = '<span style="display: inline;">Yesterday</span>'; 
       break; 

      default: 
       $dayString = date('l', $linkDate); 
       break; 
     } 

     $month = date('n', $linkDate); 
     $day = date('j', $linkDate); 
     $year = date('Y', $linkDate); 

幫我看看這個錯誤

+0

的警告是很明顯的:'addDaysToDate()'沒有被定義爲一個靜態方法,但是你要調用它,彷彿它是,所以要麼使它靜態,或調用它使用'$ this-> addDaysToDate()'而不是'self :: addDaysToDate()' –

+0

感謝您的回覆,但我仍然沒有解決我的問題,現在我有一個致命的錯誤 – user2929480

+0

如果你'現在重新得到一個致命錯誤,日誌顯示了什麼?還需要將'subtractDaysFromDate()'更改爲靜態方法,或者將其稱爲實例方法 –

回答

0

你有一個以上的問題在這裏:

在您的實例方法subtractDaysFromDate()你打電話addDaysToDate()靜態,這也是實例方法。那麼你需要撥打電話$this->。但它會產生致命的錯誤,原因很簡單:

$this指當前實例,但你有沒有:

$linkDate = DateUtility::subtractDaysFromDate($currentDate, $daysDifference);

因爲subtractDaysFromDate()是被靜態調用,你有沒有實例。

您應該確定這些方法是否爲靜態方法,並在其上添加關鍵字static,或者通過類的實例調用它們。

在這種情況下,DateUtility類需要實例化。

$dateUtility = new DateUtility(); 
$linkDate = $dateUtility->subtractDaysFromDate($currentDate, $daysDifference); 

然後

public function subtractDaysFromDate($startDate, $daysToSubtract) 
    { 
     return $this->addDaysToDate($startDate, ($daysToSubtract * -1)); //285 line 
    } 
相關問題