[英]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.