0
0

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 1 year has passed since last update.

PHP DateTimeクラスで今月はじめ~来月はじめ

Posted at

備忘録

今月はじめ(月初)~来月はじめ(のタイムスタンプ)

[
	(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) の文字について

左から順に、HourMinuteSecondとなっている。(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 秒) からの秒数

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?