日期:2014-05-16  浏览次数:20377 次

PHP获取本周第一天和最后一天

//本周的第一天和最后一天
$date=new DateTime();
$date->modify('this week');
$first_day_of_week=$date->format('Y-m-d');
$date->modify('this week +6 days');
$end_day_of_week=$date->format('Y-m-d');

用PHP获取本周第一天和最后一天,网上有很多方法,用的函数,感觉太麻烦,而且有的有bug,官方既然自带了一个DateTime类,为何很少看见有人使用?这是在一个外国网站看到的回答,这个方法可靠吗?
------解决方案--------------------
可靠,没什么问题
------解决方案--------------------
this week 这个星期
echo date('Y-m-d w', strtotime('this week'));
2014-02-17 1

我们是中国人,并不十分了解西方人对日期的表述方式(尤其是程序员们)
况且这个表述也不符合欧美人的一周从周日开始的事实

按照 php 默认的日期计算,似应写作
echo date('Y-m-d w', strtotime('last day this week'));
2014-02-16 0

------解决方案--------------------
引用:
this week 这个星期
echo date('Y-m-d w', strtotime('this week'));
2014-02-17 1

我们是中国人,并不十分了解西方人对日期的表述方式(尤其是程序员们)
况且这个表述也不符合欧美人的一周从周日开始的事实

按照 php 默认的日期计算,似应写作
echo date('Y-m-d w', strtotime('last day this week'));
2014-02-16 0


版主强大
------解决方案--------------------
有了起点就不怕没有终点
echo date('Y-m-d w', strtotime('last day this week +6 day'));
2014-02-22 6

------解决方案--------------------

echo date('Y-m-d',mktime(0,0,0,date('m'),date('d')-date('w'),date('Y'))); // 第一天
echo date('Y-m-d',mktime(0,0,0,date('m'),date('d')+(6-date('w')),date('Y'))); // 最后一天