我有一年回傳周的功能:
function getWeek(){
$today = \Carbon\Carbon::today();
$date = $today->copy()->firstOfYear()->startOfDay();
$eom = $today->copy()->endOfYear()->startOfDay();
$dates = [];
for($i = 1; $date->lte($eom); $i ){
$startDate = $date->copy();
while($date->dayOfWeek != \Carbon\Carbon::SUNDAY && $date->lte($eom)){
$date->addDay();
}
$dates['w'.$i] = $startDate->format('d/m/Y') . ' - ' . $date->format('d/m/Y');
$date->addDay();
}
return $dates;
}
該函式在 2022 年回傳 53 周,但在 2022 年是 52 周。這是回傳的結果$dates

如何更改函式以回傳第一個位置以回傳一周的完整日期(27/12/2021 - 02/01/2022),并且在一年中的最后一個位置相同
uj5u.com熱心網友回復:
我認為你錯了。
w1->w53 = 52 周
uj5u.com熱心網友回復:
此解決方案始終顯示完整的周數。使用 ISO 8601 周數。只有日期時間是必需的。為密鑰添加了年份,以便它們始終是唯一的。
$year = date_create('today')->format('Y');
//remove comment next line for test's
//$year = 2001;
$dtStart = date_create('2 jan '.$year)->modify('last Monday');
$dtEnd = date_create('last monday of Dec '.$year);
for($weeks = [];$dtStart <= $dtEnd;$dtStart->modify(' 1 week')){
$key = $dtStart->format('W-Y');
$from = $dtStart->format('d/m/Y');
$to = (clone $dtStart)->modify(' 6 Days')->format('d/m/Y');
$weeks[$key] = $from.' - '.$to;
}
var_export($weeks);
由于不需要碳,您也可以在此處進行測驗。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/469401.html
上一篇:為什么日期格式變為雙倍
下一篇:MySQL將列轉換為dat格式
