在 php 中使用 date_modify 作为 DateTime 对象的当前月份的第一天

2022-08-30 06:32:22

我可以通过以下方式获得本周的星期一:

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

我想在这个月的1号轻松获得同样的便利。我怎样才能做到这一点?


答案 1

这是我使用的。

每月的第一天:

date('Y-m-01');

该月的最后一天:

date('Y-m-t');

答案 2

需要 PHP 5.3 才能工作(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 "$year-$month-01"; // first day of a month chosen by you

推荐