我有年份,星期几,星期几和月份,我想返回月中的某天。
我的意思是,它以星期,星期,月份和年份返回我:
$month = "September";
$year = "2013";
$dayWeek= "Friday";
$week = 2;
它返回一个月中的一天:可能是1或2或3或4或5等。
谢谢!
答案 0 :(得分:2)
尝试一下
// your input
$month = "September";
$year = "2013";
$dayWeek = "Friday";
$week = 2;
// create a date object
$date = new DateTime();
// set to the first day of the specified year/month
$date->modify($year . '-' . $month . '-01');
// add $week -1 weeks to the date
$date->modify('+' . ($week - 1) . ' week');
// set to day of week
$date->modify($dayWeek);
// here's the day of month for you
echo $date->format('j');
返回2013-09-13
答案 1 :(得分:0)
您可以尝试使用nesbot/carbot
软件包来做到这一点:
use Carbon\Carbon;
...
switch($week) {
case 1:
$weekNumber = 'first';
break;
case 2:
$weekNumber = 'second';
break;
case 3:
$weekNumber = 'third';
break;
case 4:
$weekNumber = 'fourth';
break;
default:
$weekNumber = 'fifth';
}
// Now $date will be a Carbon\Carbon instance and $date->day will return day of month
$date = Carbon::parse(sprintf("%s %s of %s %s", $weekNumber, $dayWeek, $month, $year));