一、常用日期函数
time返回当前时间戳
mktime 取得一个日期的 Unix 时间戳
strtotime:将字符串转换成时间戳;
date函数的参数变化无穷,功能很强大参数很多比如:date(‘w’)函数的返回值: 0(表示星期天)到 6(表示星期六)
二、计算本周开始结束日期
周日为本周开始,date(‘w’)函数的返回值0;周六为本周结束,date(‘w’)函数的返回值6
开始:date(‘d’)-date(‘w’) +0本周开始日期
结束:date(‘d’)-date(‘w’) + 6 本周结束日期
另外一种设计方案:把周一作为本周开始,周日为本周结束
开始:date(‘d’)-date(‘w’) + 1本周开始日期
结束:date(‘d’)-date(‘w’) + 7 本周结束日期
这样设计有问题:如果当前日期在周一到周六范围内容是正确的;如果当天为周日,上面的开始和结束日期是下一周的范围开始结束范围,实际情况是应该计算本周时间范围,因为周日为本周的最后一天。所有必须单独处理周日的情况。
三、计算时间段
1、当天(截止到当前时间)
$start_time = strtotime(date('Y-m-d',time()));
$end_time = time();
2、本周
$start_time = strtotime(date("Y-m-d H:i:s",mktime(0,0,0, date("m"),date("d")-date("w"),date("Y"))));
$end_time = strtotime(date("Y-m-d H:i:s",mktime(23,59,59, date("m"),date("d")-date("w")+6,date("Y"))));
3、本月
$start_time = strtotime(date("Y-m-d H:i:s",mktime(0, 0 , 0,date("m"),1 ,date("Y"))));
$end_time = strtotime(date("Y-m-d H:i:s" ,mktime(23,59,59,date("m"), date("t"),date("Y"))));