獲取周賬期日期

用戶指定一週中的一天爲還款日

自己寫了一個小方法,記錄一下

源碼如下:

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;
}

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章