在字符串上调用成员函数FORMAT()时发生致命错误



有人能帮我吗?我有以下致命错误:未捕获错误:

在第89行调用成员函数format on string;第89行

$monday->setISODate($days->format("o"),$days->format("W"));

我的功能是:

function dateToWeekPeriod($days)
{
$monday = new DateTime();
$monday->setISODate($days->format("o"),$days->format("W"));
$sunday = clone $monday;
$sunday->modify("+6 day")->setTime(23,59);
$interval = DateInterval::createFromDateString('1 day');
$period = new DatePeriod($monday, $interval, $sunday);
return $period;
}

我的函数main是:

function main()
{
$end = new DateTime("now");
$begin= clone $end;
$begin->modify('-50 days')->setTime(23,59);
echo $end->format('Y-m-d'), "n", $begin->format('Y-m-d')."n";
$interval= new DateInterval('P1D');
$daterange= new DatePeriod($begin, $interval, $end->modify("+1 day"));
$days=array();
foreach($daterange as $date)
{
$date->format('Y-m-d')."n";
array_push($days,$date->format('Y-m-d'));
}
echo "-----les dates de l'intervalle sont:-----n";
var_dump($days);
$Week=array();
$datas=array();
$Weeks=array();
$insertAnnee=array();
$recupAnnee=array();
$tabRecupAnneeDesc=array();
foreach($days as $d)
{
$week = periodToDayArray(dateToWeekPeriod($d));//les jours de la semaine concernée
$Week=array_push($Week,$week);
}

我在这行有一个堆栈跟踪:

$week = periodToDayArray(dateToWeekPeriod($d))

thanks in advance

在main函数中,$days是一个字符串数组。您将这个数组的一个元素(字符串)传递给dateToWeekPeriod函数。

$monday->setISODate($days->format("o"),$days->format("W"));
$days->format("o") // not possible 

最简单的方法是保持$days在日期。

$days=array();
foreach($daterange as $date)
{
array_push($days,$date);
}

最新更新