用户指定一周中的一天为还款日
自己写了一个小方法,记录一下
源码如下:
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;
}