Для отображения номера дня недели я использую следующее:
echo "Today's date is: " . date("Y/m/d") . "<br>";
echo "The weekday is: " . date("l") . "<br>";
echo "The number of the weekday is: " . date("N") . "<br>";
echo "The week number is:" . date("W");
Когда днем является понедельник, вышеприведенное возвращает «Номер дня недели: 1». Это потому, что неделя начинается в понедельник по умолчанию. Мне нужно изменить день начала недели на субботу. Тогда вышеприведенное «Номер дня недели:» вернет 3 по понедельникам и 1 по субботам. В связи с этим номер недели в данной дате будет изменен соответственно.
Я нашел этот код в PHP DateTime () классе, измените первый день недели на понедельник , чтобы изменить первый день недели с воскресенья на понедельник
class EuroDateTime extends DateTime {
// Override "modify()"
public function modify($string) {
// Change the modifier string if needed
if ( $this->format('N') == 1 ) { // It's Sunday and we're calculating a day using relative weeks
$matches = array();
$pattern = '/this week|next week|previous week|last week/i';
if ( preg_match( $pattern, $string, $matches )) {
$string = str_replace($matches[0], '-7 days '.$matches[0], $string);
}
}
return parent::modify($string);
}
но мне не удалось изменить его, чтобы изменить день начала недели на субботу.
Мой тест на кислотность для того, что мне нужно сделать, это, в частности, результат:
echo "The number of the weekday is: " . date("N") . "<br>";
Может кто-нибудь предложить, пожалуйста, необходимую модификацию или другой фрагмент кода, который превратит день начала недели в субботу?