簡體   English   中英

用 PHP 計算一年中的最后一周以跳到明年

[英]Calculating last week of the year in PHP to skip to next year

我正在創建基於周的時間表。 現在我遇到了一個問題,即 2020 年是奇數年,就像第 53 周一樣。

現在我想從一年的最后一周到第一周。 我嘗試了一些但無法讓它工作(從第 53 周到第 1 周)

<header>
  <?
  $week_start = new DateTime();
  $week_start->setISODate($year,$weeknr);
  $weeknr = $week_start->format('W');

  $week_start2 = new DateTime();
  $week_start2->setISODate($year,$weeknr);
  $yearnum = $week_start2->format('Y');

  $weekmin = $weeknr - 1;


  $date = strtotime("31 December $year");
  $last_week = gmdate("W", $date);

  if($last_week == 53 && $weeknr == 53){
    $weekplus = $weeknr - 51;
    $yearnum++;
  }else{
    $weekplus = $weeknr + 1;
  }

  echo'<a href="./agenda_user?wknr='.$weekmin.'">🡠</a>';?>
  <span>Week <?

  echo $weeknr.' ';


  echo $yearnum;


  ?></span>
  <? echo '<a href="./agenda_user?wknr='.$weekplus.'">🡢</a>';?>
</header>

我找到了這個答案https://stackoverflow.com/a/3319413/11608455但這並沒有完全回答我的問題

使用:index.php?date=2020-09-01 (YYYY-MM-DD) 代替? 這樣您就可以更輕松地操縱日期。

對於您的“下”周數字:

$date = new DateTime('2020-10-07');
$date->add(new DateInterval('P7D'));
echo $date->format('W');

對於 min weeknr:

$date = new DateTime('2000-10-07');
$date->sub(new DateInterval('P7D'));
echo $date->format('W');

使用您想要顯示的任何內容更改格式。

對於下一個和前一個鏈接,我將使用整個日期。 index.php?date=2020-10-07

這使得操作日期變得更容易,並且不會與第 53 周與第 1 周混淆。在第 53 周或第 1 周您想要顯示這一切取決於您。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM