本月的第一天在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/>'; 

目前我正在使用这个解决scheme:

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

我遇到的唯一问题是正在设定奇怪的时间。 我需要正确的范围为我们的search界面,我结束了这个:

 $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方法,我们应该可以得到结果。 即; date('N / D / l',mktime(0,0,0,month,day,year));

例如

 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