明滅するプログラマの思索

WEBエンジニアとして勤務している一介の男が、日々気づいたことをまとめるブログです

次の月曜日、前の日曜日を計算する方法

備忘録です。
PHPで次の月曜日や前の日曜日を計算する方法をまとめます。

次の月曜日

  • 現在が日曜日なら翌日
  • 現在が月曜日なら当日
  • 現在が火曜日~土曜日なら翌週の月曜日
if (date('w') == 1) {
  // 今日が月曜日
  $next_monday = date('Y/m/d');
} else  {
  $next_monday = date('Y/m/d', strtotime("next Monday"));
}

前の日曜日

  • 現在が日曜日なら当日
  • 現在が月曜~土曜なら今週の日曜日
if (date('w') == 0) {
  $last_sunday = date('Y/m/d');
} else {
  $last_sunday = date('Y/m/d', strtotime("last Sunday"));
}

前の月曜日、ただし午前4時に切り替わる

  • 現在が日曜日なら先週の月曜日
  • 現在が月曜日かつ午前4時以前なら先週の月曜日
  • 現在が月曜日かつ午前4時以降なら当日
  • 現在が火曜日~土曜日なら今週の月曜日
if (date('w') == 1 && date('G') >= 4) {
  // 今日が月曜日かつ午前4時以降なら今日
  $last_monday = date('Y/m/d');
} else  {
  $last_monday = date('Y/m/d', strtotime("last Monday"));
}