Php 日期问题

Php 日期问题,php,date,fatal-error,Php,Date,Fatal Error,我有一个需要得到的范围为每周一个太阳,从目前开始 这就是我想到的: $range = 0; $weekNumber = date("W", strtotime(date('l j F Y') . ' ' . ($range) . ' days')); $weekYear = date("Y", strtotime(date('l j F Y') . ' ' . ($range) . ' days')); $week_array = getWeekDates($weekNumber,

我有一个需要得到的范围为每周一个太阳,从目前开始

这就是我想到的:

$range = 0;
$weekNumber =  date("W", strtotime(date('l j  F Y') . '  ' . ($range) . ' days'));
$weekYear =  date("Y", strtotime(date('l j  F Y') . '  ' . ($range) . ' days'));

$week_array = getWeekDates($weekNumber, $weekYear);

function getWeekDates($week, $year) {
    $dto = new DateTime();
    $ret['mon'] = $dto->setISODate($year, $week)->format('Y-m-d');
    $ret['tue'] = $dto->modify('+1 days')->format('Y-m-d');
    $ret['wed'] = $dto->modify('+1 days')->format('Y-m-d');
    $ret['thu'] = $dto->modify('+1 days')->format('Y-m-d');
    $ret['fri'] = $dto->modify('+1 days')->format('Y-m-d');
    $ret['sat'] = $dto->modify('+1 days')->format('Y-m-d');
    $ret['sun'] = $dto->modify('+1 days')->format('Y-m-d');
    return $ret;
}
它可以在我的本地WampServer(5.3.4)上运行,但当我尝试在Godaddy(5.2.17)上运行它时,出现以下错误:

致命错误:在/home/..php联机($ret['mon']=$dto->setISODate($year,$week)->format('Y-m-d');)中对非对象调用成员函数format();

根据从5.3开始将“setISODate”和“modify”的返回值从NULL更改为DateTime。这就是为什么它可以在较新的php环境中工作,而不能在较旧的php环境中工作

要使代码兼容,请将代码更改为以下内容:

$dto->setISODate($year, $week);
$ret['mon'] = $dto->format('Y-m-d');
$dto->modify('+1 days');
$ret['tue'] = $dto->format('Y-m-d');
//so forth for rest of days
下面是编写函数的另一种方法:

function getWeekDates($week, $year) {
    $dto = new DateTime();
    $dto->setISODate($year, $week);
    $keys = array('mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun');
    $ret = array();
    for($i = 0; $i < 7; $i++) {
        $ret[$keys[$i]] = $dto->format('Y-m-d');
        $dto->modify('+1 days');
    }
    return $ret;
}
函数获取工作日($week,$year){
$dto=新日期时间();
$dto->setISODate($year,$week);
$keys=数组('mon'、'tue'、'wed'、'thu'、'fri'、'sat'、'sun');
$ret=array();
对于($i=0;$i<7;$i++){
$ret[$keys[$i]]=$dto->格式('Y-m-d');
$dto->修改(“+1天”);
}
返回$ret;
}

godaddy和您的本地wamp服务器上的php版本是什么?可能是无与伦比的