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