3v4l.org

run code in 500+ PHP versions simultaneously
<?php for ($w = 0; $w < 4; ++$w) { var_dump('week ' . $w); $day = date('w') - 1; $day += 7 * $w; var_dump($day); $startDate = date('Y-m-d', strtotime('-' . $day . ' days')); var_dump($startDate); var_dump('+' . (6 - $day) . ' days'); $endDate = date('Y-m-d', strtotime((6 - $day) . ' days')); var_dump($endDate); $weekNumber = new \Datetime($startDate); $weekNumber = $weekNumber->format('W'); }
Output for 8.1.23 - 8.1.34, 8.2.0 - 8.2.34, 8.3.0 - 8.3.35, 8.4.1 - 8.4.26, 8.5.0 - 8.5.11
string(6) "week 0" int(2) string(10) "2023-05-22" string(7) "+4 days" string(10) "2023-05-28" string(6) "week 1" int(9) string(10) "2023-05-15" string(8) "+-3 days" string(10) "2023-05-21" string(6) "week 2" int(16) string(10) "2023-05-08" string(9) "+-10 days" string(10) "2023-05-14" string(6) "week 3" int(23) string(10) "2023-05-01" string(9) "+-17 days" string(10) "2023-05-07"

preferences:
30.65 ms | 1497 KiB | 7 Q