首页 文章

需要使用PHP替换日期函数中的字符串

提问于
浏览
-1

我有一个循环,在本周添加一周,如下所示,

for($b=0; $b < 27; $b++)
{
    $header_week = date('YW',strtotime('+'.$b.' week'));
}

这个循环输出将是,

O/P : 201850,201851,201852,201901,201902,201903,....,201924.

但是,如果我尝试将一周添加到已定义的字符串输出,而不是添加一周到当前周,

$date = '201848';
for($b=0; $b < 27; $b++)
{
   $date1 = date('YW', strtotime('+'.$b.' week', $date));
}

O/P : 197001,197002,197003,etc....

但我需要输出像,

O/P : 201848,201849,201850,201851,201852,201901,etc..`.

如何在该日期函数中替换字符串 .

请帮我解决这个问题 .

1 回答

  • 1

    在这里,我们将YearWeek字符串拆分为 $year$week ,然后创建新的 DateTime 对象 . 要获得给定年份的当前周,我们使用 setISODate 函数,然后根据您的要求运行所需的循环以继续添加周 .

    $db_date = "201848";
    $year = substr($db_date, 0, 4);
    $week = substr($db_date, 4);
    
    $dateFromStr = new DateTime();
    $dateFromStr->setISODate($year, $week);
    
    if($dateFromStr) {
      for($b=0; $b < 27; $b++)
      {
        $calc_date = clone $dateFromStr;
        $calc_date->add(new DateInterval("P" . $b . "W"));
        $date1 = $calc_date->format("YW");
      }   
    }
    

    输出:

    201848,201849,201850,201851,201852,201801,201902,201903,201904,201905,201906,201907,201908,201909 ..

相关问题