[php] date_modify를 DateTime 객체로 사용하여 PHP에서 현재 달의 첫날
이번 주 월요일에 다음을 얻을 수 있습니다.
$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('Y-m-01'); // first day of this month
echo date("$year-$month-01"); // first day of a month chosen by you
답변
여기 내가 사용하는 것이 있습니다.
매월 첫째 날 :
date('Y-m-01');
매월 마지막 날 :
date('Y-m-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('Y-m-d',strtotime("first day of this month"));
$lastDay=date('Y-m-d',strtotime("last day of this month"));
그게 다야
답변
PHP 5.2에서는 다음을 사용할 수 있습니다.
<? $d = date_create();
print date_create($d->format('Y-m-1'))->format('Y-m-d') ?>
답변
미운, (위의 메소드 호출을 사용하지 않음)이지만 작동합니다.
echo 'First day of the month: ' . date('m/d/y h:i a',(strtotime('this month',strtotime(date('m/01/y')))));