The first day of the current month in php using date_modify as DateTime object The first day of the current month in php using date_modify as DateTime object php php

The first day of the current month in php using date_modify as DateTime object


Here is what I use.

First day of the month:

date('Y-m-01');

Last day of the month:

date('Y-m-t');


Requires PHP 5.3 to work ("first day of" is introduced in PHP 5.3). Otherwise the example above is the only way to do it:

<?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');

In PHP 5.4+ you can do this:

<?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');

If you prefer a concise way to do this, and already have the year and month in numerical values, you can use 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


This is everything you need:

$week_start = strtotime('last Sunday', time());$week_end = strtotime('next Sunday', time());$month_start = strtotime('first day of this month', time());$month_end = strtotime('last day of this month', time());$year_start = strtotime('first day of January', time());$year_end = strtotime('last day of December', time());echo date('D, M jS Y', $week_start).'<br/>';echo date('D, M jS Y', $week_end).'<br/>';echo date('D, M jS Y', $month_start).'<br/>';echo date('D, M jS Y', $month_end).'<br/>';echo date('D, M jS Y', $year_start).'<br/>';echo date('D, M jS Y', $year_end).'<br/>';