在日常的开发中,尤其是数据汇总的业务场景,我们一般会有这样的场景,统计本周内的订单数据。首先我们要得到本周内有哪些日期,在根据日期去做查询操作。这里分享一篇如何使用PHP获取本周的所有日期。
获取日期
第一天和最后一天
如果要获取第一天和最后一天,可以使用如下的方法。可以使用PHP内置函数date()、strtotime()和如下方法来统计本周第一天到本周最后一天的日期。
可以使用PHP内置函数date()、strtotime()和如下方法来统计本周第一天到本周最后一天的日期:
代码语言:javascript复制// 获取本周第一天的时间戳
$first_day_of_week = strtotime('this week Monday');
// 获取本周最后一天的时间戳
$last_day_of_week = strtotime('this week Sunday');
// 使用date()函数将时间戳转换为日期格式
$start_date = date('Y-m-d', $first_day_of_week);
$end_date = date('Y-m-d', $last_day_of_week);
echo "本周起始日期: {$start_date}n";
echo "本周结束日期: {$end_date}n";
输出结果类似于:
代码语言:javascript复制本周起始日期: 2021-12-06
本周结束日期: 2021-12-12
本周所有日期
可以基于上面提供的算法,使用for
循环语句逐个输出本周的日期(包括第一天和最后一天),代码如下:
// 获取本周第一天的时间戳
$first_day_of_week = strtotime('this week Monday');
// 获取本周最后一天的时间戳
$last_day_of_week = strtotime('this week Sunday');
// 使用date()函数将时间戳转换为日期格式
$start_date = date('Y-m-d', $first_day_of_week);
$end_date = date('Y-m-d', $last_day_of_week);
echo "本周起始日期: {$start_date}n";
echo "本周结束日期: {$end_date}n";
// 使用for循环逐个输出中间的日期
for ($i = $first_day_of_week; $i <= $last_day_of_week; $i = 86400) {
$current_date = date('Y-m-d', $i);
echo "{$current_date}n";
}
输出结果类似于以下内容(以本周为例):
代码语言:javascript复制本周起始日期: 2021-12-06
本周结束日期: 2021-12-12
2021-12-06
2021-12-07
2021-12-08
2021-12-09
2021-12-10
2021-12-11
2021-12-12
其中,86400
表示一天的秒数,即每次循环加上一天的秒数,来遍历本周内所有的日期。