获取周账期日期

用户指定一周中的一天为还款日

自己写了一个小方法,记录一下

源码如下:

function getWeekDate($str)
{
    $now = date('w');
    //周日设为7
    if($now == 0) {
        $now = 7;
    }
    $weekArr = ['一' => 1, '二' => 2, '三' => 3, '四' => 4, '五' => 5, '六' => 6, '日' => 7];
    $set = $weekArr[$str];
    if($set > $now) {
        //设定星期大于当前星期 增加超过当前星期的天数
        $date = date('Y-m-d', strtotime('+'. ($set - $now) . 'days'));
    }else if($set == $now) {
        //设定星期等于当前星期 直接在当前日期上加7天
        $date = date('Y-m-d', strtotime('+7 days'));
    }else{
        //设定星期小鱼当前星期 先获取本星期最后一天日期 在此基础上增加天数
        $end = 7 - $now;
        $end_date = date('Y-m-d', strtotime('+'. $end . 'days'));
        $date = date('Y-m-d', strtotime('+'. $set . 'days', strtotime($end_date)));
    }
    return $date;
}


//调用

echo getWeekDate('一');

后期需求改变:指定星期,为下周支付时间

function getWeekDate($str)
{
    $defaultDate = date('Y-m-d', strtotime('+1 week'));//当前日期
    //获取设置日期周的第几天 周日是0 周一到周六是 1 - 6
    $w = date('w', strtotime($defaultDate));
    //获取本周开始日期,如果$w是0,则表示周日,减去 6 天
    $week_start = date('Y-m-d', strtotime("$defaultDate -" . ($w ? $w - 1 : 6) . ' days'));
    $weekArr['一'] = $week_start;
    $weekArr['二'] = date('Y-m-d', strtotime("$week_start +1 days"));
    $weekArr['三'] = date('Y-m-d', strtotime("$week_start +2 days"));
    $weekArr['四'] = date('Y-m-d', strtotime("$week_start +3 days"));
    $weekArr['五'] = date('Y-m-d', strtotime("$week_start +4 days"));
    $weekArr['六'] = date('Y-m-d', strtotime("$week_start +5 days"));
    $weekArr['日'] = date('Y-m-d', strtotime("$week_start +6 days"));
    $date = $weekArr[$str];
    return $date;
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JSON_L

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值