用戶指定一週中的一天爲還款日
自己寫了一個小方法,記錄一下
源碼如下:
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;
}