严格标准:非静态方法 DateUtility::subtractDaysFromDate() 不应静态调用,假设 $this 来自/home/zumpu/public_html/cats/cats-0.8.0/modules/activity/ActivityUI 中不兼容的上下文。 php 第 449 行
严格标准:非静态方法 DateUtility::addDaysToDate() 不应静态调用,假设 $this 来自/home/zumpu/public_html/cats/cats-0.8.0/lib/DateUtility.php 中不兼容的上下文第285行
public function subtractDaysFromDate($startDate, $daysToSubtract)
{
return self::addDaysToDate($startDate, ($daysToSubtract * -1)); //285 line
}
// first error code 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);
帮我解决这个错误
最佳答案
您遇到的问题不止一个:
在实例方法 subtractDaysFromDate()
中,静态调用 addDaysToDate()
,这也是实例方法。然后你需要用$this->
来调用它。但它会产生 fatal error ,原因很简单:
$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
}
关于php - 静态标准: Non-Static method Date utility,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22700152/