18
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【PHP】Carbonで日曜日(週の最初)の日付を取得する

Last updated at Posted at 2016-10-07

Carbon - A simple PHP API extension for DateTime.

Carbonのデフォルトでは週の最初は月曜日に設定されているのでstartOfWeek()を使うと月曜日の日付が返ってくる
日曜日の日付を取得したいときに困ったので調べてみた

方法1: 1日引く

デフォルトで月曜日が返ってくるわけなのでstartOfWeek()->subDay(1)と1日引くことで日曜日の日付が取得できる

$dt = Carbon::today(); // 2016-10-07 00:00:00
$dt->startOfWeek(); // 2016-10-03 00:00:00
$dt->startOfWeek()->subDay(1); // 2016-10-02 00:00:00

方法2: 週の最初を日曜日に設定する

setWeekStartsAt()にint(0-6)を渡すとその曜日を週の最初にしてくれる
Carbonでは定数としてSUNDAYが 0 に設定されているのでsetWeekStartsAt(Carbon::SUNDAY)とすればstartOfWeek()は日曜日の日付を返してくれる
週末がデフォルトで日曜日になっているので、一緒にsetWeekEndsAt(Carbon::SATURDAY)と週末を土曜日に設定しておくと良い

Carbon::setWeekStartsAt(Carbon::SUNDAY); // 週の最初を日曜日に設定
Carbon::setWeekEndsAt(Carbon::SATURDAY); // 週の最後を土曜日に設定
$dt = Carbon::today(); // 2016-10-07 00:00:00
$dt->startOfWeek(); // 2016-10-02 00:00:00
$dt->endOfWeek(); // 2016-10-08 23:59:59

一回だけ取得するなら方法1、何度も取得するなら方法2が良いんじゃないかなと思うけどやりやすい方使えばいいと思う

18
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?