Как получить начальный день недели в следующем году, используя функцию date () в php - PullRequest
0 голосов
/ 29 августа 2018

Я использую формат даты (), чтобы вернуть начальный день недели месяца. Код, который я имею ниже, - это то, как я пытаюсь достичь этого. Для текущего года (2018) это работает как обычно. Например, этот месяц август, а начальный день недели - среда, поэтому он вернет 3 для среды. (Пока работает)

По мере того, как мы продвигаем год к 2019 году, начинается неправильный начальный день недели Например, январь 2019 года начинается во вторник, поэтому он должен возвращать 2, но возвращает 1. (один день)

Эта ошибка, по-видимому, кумулятивна, поэтому если мы перейдем к 2020 году, то это будет 2 дня и т. Д. Я так старался правильно отформатировать эту дату (), но безрезультатно. Это даже правильный способ сделать это?

Код:

$future_month = 5 /*for January 2019*/     
$starting_weekday = date('N',mktime(0, 0, 0, date('m', strtotime('+'.$future_month.' months', strtotime(date('Y-m-01')))), 1));

Большое спасибо

Cameron

1 Ответ

0 голосов
/ 29 августа 2018

Ваш код делает это намного сложнее, чем нужно.

$dt = new DateTime('first day of +5 months')
$dt->format('N'); // "2"
...