如何计算PHP中的月份,包括月,年,星期和星期数 就像,如果我有2013年9月,星期几是星期五,星期几是2,我应该得到6.(2013年9月6日星期五是第2周。)
答案 0 :(得分:4)
实现此目的的一种方法是将relative formats用于strtotime()
。
不幸的是,它并不像以下那样简单:
strtotime('Friday of second week of September 2013');
为了让您的周数按照您的提及工作,您需要使用相对时间戳再次致电strtotime()
。
$first_of_month_timestamp = strtotime('first day of September 2013');
$second_week_friday = strtotime('+1 week, Friday', $first_of_month_timestamp);
echo date('Y-m-d', $second_week_friday); // 2013-09-13
注意:由于该月的第一天从第一周开始,我相应地减少了一周。
答案 1 :(得分:3)
我打算建议以这种方式使用strtotime()
:
$ts = strtotime('2nd friday of september 2013');
echo date('Y-m-d', $ts), PHP_EOL;
// outputs: 2013-09-13
这似乎不是您希望日历的行为方式?但它符合(适当的)标准:)
答案 2 :(得分:0)
这种方式有点长而且明显但是有效。
/* INPUT */
$month = "September";
$year = "2013";
$dayWeek= "Friday";
$week = 2;
$start = strtotime("{$year}/{$month}/1"); //get first day of that month
$result = false;
while(true) { //loop all days of month to find expected day
if(date("w", $start) == $week && date("l", $start) == $dayWeek) {
$result = date("d", $start);
break;
}
$start += 60 * 60 * 24;
}
var_dump($result); // string(2) "06"