Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 获得下一周的开始和结束时间_Php_Date - Fatal编程技术网

Php 获得下一周的开始和结束时间

Php 获得下一周的开始和结束时间,php,date,Php,Date,我一直在使用我发现的一个修改过的函数,但它仍然需要一些东西来修复 public static function getStartAndEndDate($week, $year) { $dto = new DateTime(); $dto->setISODate($year, $week); $ret = Array(); for($i = 0; $i<=9;$i++) { $ret[$i]['week_start'] = $dt

我一直在使用我发现的一个修改过的函数,但它仍然需要一些东西来修复

public static function getStartAndEndDate($week, $year) {
    $dto = new DateTime();
    $dto->setISODate($year, $week);
    $ret = Array();
    for($i = 0; $i<=9;$i++)
    {
        $ret[$i]['week_start'] = $dto->format('d/m/Y');
        $dto->modify('+6 days');
        $ret[$i]['week_end'] = $dto->format('d/m/Y');
    }
    return $ret;
}
本周(这里是星期一)有效,我们得到2014年2月10日-2014年2月16日,但第二周不是2014年2月17日-2014年2月23日,实际上是2014年2月16日-2014年2月22日


感谢您的帮助

您只需添加另一个
+1天
,如下所示:

函数getStartAndEndDate($week,$year){ $dto=新日期时间(); $dto->setISODate($year,$week); $ret=Array(); 对于($i=0;$iformat($d/m/Y)); $dto->修改(“+6天”); $ret[$i]['week_end']=$dto->格式('d/m/Y'); $dto->修改(“+1天”); } 返回$ret; }
$week_array = class::getStartAndEndDate(date('W'),date('Y'));
echo '<pre>';print_r($week_array);exit;
Array
(
    [0] => Array
        (
            [week_start] => 10/02/2014
            [week_end] => 16/02/2014
        )

    [1] => Array
        (
            [week_start] => 16/02/2014
            [week_end] => 22/02/2014
        )

    [2] => Array
        (
            [week_start] => 22/02/2014
            [week_end] => 28/02/2014
        )

    [3] => Array
        (
            [week_start] => 28/02/2014
            [week_end] => 06/03/2014
        )

    [4] => Array
        (
            [week_start] => 06/03/2014
            [week_end] => 12/03/2014
        )

    [5] => Array
        (
            [week_start] => 12/03/2014
            [week_end] => 18/03/2014
        )

    [6] => Array
        (
            [week_start] => 18/03/2014
            [week_end] => 24/03/2014
        )

    [7] => Array
        (
            [week_start] => 24/03/2014
            [week_end] => 30/03/2014
        )

    [8] => Array
        (
            [week_start] => 30/03/2014
            [week_end] => 05/04/2014
        )

    [9] => Array
        (
            [week_start] => 05/04/2014
            [week_end] => 11/04/2014
        )

)
function getStartAndEndDate($week, $year) {
    $dto = new DateTime();
    $dto->setISODate($year, $week);
    $ret = Array();
    for($i = 0; $i<=9;$i++)
    {
        $ret[$i]['week_start'] = $dto->format('d/m/Y');
        $dto->modify('+6 days');
        $ret[$i]['week_end'] = $dto->format('d/m/Y');
        $dto->modify('+1 day');
    }
    return $ret;
}