获取时间段字符串数组

获取由上月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
)

代码说明:

  1. 获取当前日期:使用DateTime类获取当前日期。
  2. 获取上个月的日期:使用modify('first day of last month')方法获取上个月的第一天。
  3. 设置上个月的日期为20号:使用setDate方法将日期设置为上个月的20号。
  4. 设置本月的日期为21号:使用setDate方法将日期设置为本月的21号。
  5. 创建日期范围生成器:使用DatePeriod类生成从上月20号到本月21号的日期范围。
  6. 输出日期列表:使用foreach循环遍历日期范围,并使用format('Ymd')方法将日期格式化为YYYYMMDD格式。运行此代码将输出从上月20号到本月21号的所有日期,日期格式为YYYYMMDD
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值