获取由上月20日到本月20日时间字符串组成的数组:
// 获取当前日期
$currentDate = new DateTime();
// 获取上个月的日期
$lastMonthDate = new DateTime();
$lastMonthDate->modify('first day of last month');
//上月20日至当月20日。
// 设置上个月的日期为20号
$lastMonthDate->setDate($lastMonthDate->format('Y'), $lastMonthDate->format('m'), 20);
// 设置本月的日期为21号 设置为21是因为日期间隔会少一天
$currentDate->setDate($currentDate->format('Y'), $currentDate->format('m'), 21);
// 创建一个日期范围生成器
$period = new DatePeriod(
$lastMonthDate, // 开始日期
new DateInterval('P1D'), // 间隔一天
$currentDate // 结束日期
);
// 输出日期列表 会输出20230620到20240720的字符串
foreach ($period as $date) {
$days[] = $date->format('Ymd');//返回格式Ymd
}
return $days;
打印出$days数组内容:
Array
(
[0] => 20240620
[1] => 20240621
[2] => 20240622
······
[30] => 20240719
[31] => 20240720
)
代码说明:
- 获取当前日期:使用
DateTime
类获取当前日期。 - 获取上个月的日期:使用
modify('first day of last month')
方法获取上个月的第一天。 - 设置上个月的日期为20号:使用
setDate
方法将日期设置为上个月的20号。 - 设置本月的日期为21号:使用
setDate
方法将日期设置为本月的21号。 - 创建日期范围生成器:使用
DatePeriod
类生成从上月20号到本月21号的日期范围。 - 输出日期列表:使用
foreach
循环遍历日期范围,并使用format('Ymd')
方法将日期格式化为YYYYMMDD
格式。运行此代码将输出从上月20号到本月21号的所有日期,日期格式为YYYYMMDD
。