Intereting Posts

Первый день текущего месяца в php, использующий date_modify как объект DateTime

Я могу получить понедельник на этой неделе с:

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

Я хотел бы получить с той же легкостью 1-го числа этого месяца. Как я могу это достичь?

благодаря

Требует 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('Ym-01'); // first day of this month echo date("$year-$month-01"); // first day of a month chosen by you 

Вот что я использую.

Первый день месяца:

 date('Ym-01'); 

Последний день месяца:

 date('Ym-t'); 

Это все, что вам нужно:

 $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/>'; 

В настоящее время я использую это решение:

 $firstDay = new \DateTime('first day of this month'); $lastDay = new \DateTime('last day of this month'); 

Единственная проблема, с которой я столкнулся, заключается в том, что наступает странное время. Мне нужен правильный диапазон для нашего интерфейса поиска, и я закончил с этим:

 $firstDay = new \DateTime('first day of this month 00:00:00'); $lastDay = new \DateTime('first day of next month 00:00:00'); 

Я использую безумный способ сделать это, используя эту команду

 $firstDay=date('Ym-d',strtotime("first day of this month")); $lastDay=date('Ym-d',strtotime("last day of this month")); 

Это все

В php 5.2 вы можете использовать:

 <? $d = date_create(); print date_create($d->format('Ym-1'))->format('Ym-d') ?> 

Ужасно (и не использует ваш метод выше), но работает:

 echo 'First day of the month: ' . date('m/d/yh:i a',(strtotime('this month',strtotime(date('m/01/y'))))); 

Вы можете сделать это следующим образом:

 $firstday = date_create()->modify('first day January 2010'); 

используя метод даты, мы должны иметь возможность получить результат. то есть; date ('N / D / l', mktime (0, 0, 0, месяц, день, год));

Например

 echo date('N', mktime(0, 0, 0, 7, 1, 2017)); // will return 6 echo date('D', mktime(0, 0, 0, 7, 1, 2017)); // will return Sat echo date('l', mktime(0, 0, 0, 7, 1, 2017)); // will return Saturday