要获取近7天、近30天、近1个月和近1年的开始日期和结束日期列表,可以使用 PHP 中的 DateTime
和 DateInterval
类来计算日期范围。下面是一个示例代码,演示如何获取这些日期范围:
php">// 获取当前日期
$today = new DateTime();
// 近7天
$sevenDaysAgo = clone $today;
$sevenDaysAgo->modify('-6 days');
$sevenDaysRange = [
'start' => $sevenDaysAgo->format('Y-m-d'),
'end' => $today->format('Y-m-d')
];
// 近30天
$thirtyDaysAgo = clone $today;
$thirtyDaysAgo->modify('-29 days');
$thirtyDaysRange = [
'start' => $thirtyDaysAgo->format('Y-m-d'),
'end' => $today->format('Y-m-d')
];
// 近1个月
$oneMonthAgo = clone $today;
$oneMonthAgo->modify('-1 month');
$oneMonthRange = [
'start' => $oneMonthAgo->format('Y-m-d'),
'end' => $today->format('Y-m-d')
];
// 近1年
$oneYearAgo = clone $today;
$oneYearAgo->modify('-1 year');
$oneYearRange = [
'start' => $oneYearAgo->format('Y-m-d'),
'end' => $today->format('Y-m-d')
];
在上述示例中,我们首先创建了一个 DateTime
对象来表示当前日期。
然后,使用 clone
关键字创建了 sevenDaysAgo
、thirtyDaysAgo
、oneMonthAgo
和 oneYearAgo
变量的副本,确保不会修改原始日期对象。
接下来,通过使用 modify()
方法和适当的字符串参数,我们将日期对象修改为所需的日期范围。
最后,在每个范围中,我们提取开始日期和结束日期,并将它们存储在关联数组的 start
和 end
键中。我们使用 format()
方法将日期格式化为 'Y-m-d'
格式。
现在,你可以通过访问相应的日期范围数组来获取开始日期和结束日期,如 $sevenDaysRange['start']
和 $sevenDaysRange['end']
。