備忘録
今月はじめ(月初)~来月はじめ(のタイムスタンプ)
[
(int)(new DateTime)->modify('first day of')->setTime(0,0,0)->format('U'),
(int)(new DateTime)->modify('first day of next month')->setTime(0,0,0)->format('U'),
]
例だと配列に突っ込んでるけど、、、
これを変数に打ち込んで、例えば$val[0]
とか$val[1]
ってすれば取れる。
(int)
について
format('U')
自体は整数だが、DateTimeから返ってくる型が String のため Int に変換。
なお、Intのサイズは基本的には32bit +-付だが、ちゃんと知りたい場合は 下記の通り
整数のサイズはプラットフォームに依存しますが、 約 20 億 (32 ビット符号付) が一般的な値です。 64 ビットプラットフォームでの通常の最大値は、およそ 9*10^18 (900京) になります。 PHP は符号無し整数をサポートしていません。 整数のサイズは定数 PHP_INT_SIZE で、 整数の最大値は定数 PHP_INT_MAX で、 整数の最小値は定数 PHP_INT_MIN で決まります。
modify
の文字について
文字 | 説明 |
---|---|
first day of |
今月頭(1th Jun. 2023) |
first day of next month |
来月頭(1th Jul. 2023) |
他にも色々行ける(
->setTime(0,0,0)
の文字について
左から順に、Hour
,Minute
,Second
となっている。(Second
は省略可能。省略時は0
が入る)
4つ目のフィールドとして Microsecond
が入る。使われているのかは知らない。。。省略したら0
になる。
public setTime(
int $hour,
int $minute,
int $second = 0,
int $microsecond = 0
): DateTime
format
の文字について
文字 | 説明 |
---|---|
U |
Unix Epoch (1970 年 1 月 1 日 0 時 0 分 0 秒) からの秒数 |