2014-03-27 49 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 
    } 
相关问题