PHP获取每个周五或周一的日期

今天遇到一个需要获取2022年年内所有周五日期的需求,
方法如下:

function getWeeklyBuyDate($start='2022-04-05', $end='2022-04-30', $weekDay=1)
    {
    	$WORK_DAY = [
        1 => ['en' => 'Monday', 'cn' => '一'],
        2 => ['en' => 'Tuesday', 'cn' => '二'],
        3 => ['en' => 'Wednesday', 'cn' => '三'],
        4 => ['en' => 'Thursday', 'cn' => '四'],
        5 => ['en' => 'Friday', 'cn' => '五']
    	];
        //获取每周要执行的日期 例如: 2016-01-02
        $start = empty($start) ? date('Y-m-d') : $start;
        $startTime = strtotime($start);

        $startDay = date('N', $startTime);
        if ($startDay < $weekDay) {
            $startTime = strtotime($WORK_DAY[$weekDay]['en'], strtotime($start)); //本周x开始, 例如, 今天(周二)用户设置每周四执行, 那本周四就会开始执行
        } else {
            $startTime = strtotime('next '.$WORK_DAY[$weekDay]['en'], strtotime($start));//下一个周x开始, 今天(周二)用户设置每周一执行, 那应该是下周一开始执行
        }
        $endTime = strtotime($end);
       
        $list = [];
        for ($i=0;;$i++) {
            $dayOfWeek = strtotime("+{$i} week", $startTime); //每周x

            if ($dayOfWeek > $endTime) {
                break;
            }
            $list[] = date('Y-m-d', $dayOfWeek);
        }
      	return $list;
    }

获取 出来的结果如

Array
(
    [0] => 2022-04-04
    [1] => 2022-04-11
    [2] => 2022-04-18
    [3] => 2022-04-25
    [4] => 2022-05-02
    [5] => 2022-05-09
    [6] => 2022-05-16
    [7] => 2022-05-23
    [8] => 2022-05-30
    [9] => 2022-06-06
    [10] => 2022-06-13
    [11] => 2022-06-20
    [12] => 2022-06-27
    [13] => 2022-07-04
    [14] => 2022-07-11
    [15] => 2022-07-18
    [16] => 2022-07-25
    [17] => 2022-08-01
    [18] => 2022-08-08
    [19] => 2022-08-15
    [20] => 2022-08-22
    [21] => 2022-08-29
    [22] => 2022-09-05
    [23] => 2022-09-12
    [24] => 2022-09-19
    [25] => 2022-09-26
    [26] => 2022-10-03
    [27] => 2022-10-10
    [28] => 2022-10-17
    [29] => 2022-10-24
    [30] => 2022-10-31
    [31] => 2022-11-07
    [32] => 2022-11-14
    [33] => 2022-11-21
    [34] => 2022-11-28
    [35] => 2022-12-05
    [36] => 2022-12-12
    [37] => 2022-12-19
    [38] => 2022-12-26
)

一个小方法,可以参考。获取每个周特定周几的日期。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值