1. ホーム
  2. php

[解決済み] php で date_modify を DateTime オブジェクトとして使用し、現在の月の最初の日を表示します。

2022-04-22 11:18:39

質問

で今週の月曜日を迎えることができます。

$monday = date_create()->modify('this Monday');

今月1日にも同じように簡単に取得したいです。どうすれば実現できますか?

どのように解決するのですか?

PHP 5.3 で動作する必要があります ("first day of" は PHP 5.3 で導入されました)。それ以外の場合は、上記の例で行うしかありません。

<?php
    // First day of this month
    $d = new DateTime('first day of this month');
    echo $d->format('jS, F Y');

    // First day of a specific month
    $d = new DateTime('2010-01-19');
    $d->modify('first day of this month');
    echo $d->format('jS, F Y');

    // alternatively...
    echo date_create('2010-01-19')
      ->modify('first day of this month')
      ->format('jS, F Y');

PHP 5.4+ では、このようにすることができます。

<?php
    // First day of this month
    echo (new DateTime('first day of this month'))->format('jS, F Y');

    echo (new DateTime('2010-01-19'))
      ->modify('first day of this month')
      ->format('jS, F Y');

もし、簡潔な方法がお好みで、すでに年や月が数値でわかっている場合は date() :

<?php
    echo date('Y-m-01'); // first day of this month
    echo date("$year-$month-01"); // first day of a month chosen by you