<?php
function getStartOfWeekDate($date = null)
{
if ($date instanceof \DateTime) {
$date = clone $date;
} else if (!$date) {
$date = new \DateTime();
} else {
$date = new \DateTime($date);
}
$date->setTime(0, 0, 0);
if ($date->format('N') == 1) {
// If the date is already a Monday, return it as-is
return $date;
} else {
// Otherwise, return the date of the nearest Monday in the past
// This includes Sunday in the previous week instead of it being the start of a new week
return $date->modify('last monday');
}
}
echo getStartOfWeekDate(new \DateTime('2020-12-06'))->format('Y-m-d');
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /in/6n50U on line 4
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /in/6n50U on line 7
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /in/6n50U on line 9
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /in/6n50U on line 24
Fatal error: Call to a member function format() on a non-object in /in/6n50U on line 24
Process exited with code 255.
Output for 5.0.0 - 5.0.5, 5.1.0 - 5.1.6
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /in/6n50U on line 4
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /in/6n50U on line 7
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /in/6n50U on line 9
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /in/6n50U on line 24
Fatal error: Class 'DateTime' not found in /in/6n50U on line 24
Process exited with code 255.
Output for 4.4.2 - 4.4.9
Parse error: syntax error, unexpected T_STRING in /in/6n50U on line 4
Process exited with code 255.