我正在尝试将一年中的一个月的数量除以一年中一周的数量。 所以例如第1周是在1月,并且返回1,第6周是在2月,所以我想要2。
我尝试使用date_parse_from_format('W/Y')
,但没有成功(它给了我错误)。
有没有办法使用date_parse_from_format()
或有其他方法吗?
答案 0 :(得分:6)
print date("m",strtotime("2011-W6-1"));
(注意到在2011年,1月有六周,因此第6周(根据某些定义)是在第1个月。)
答案 1 :(得分:2)
只想为第一个答案添加一个注释,第1周到第9周的周数应为01-09(如果不添加前导零,它将始终给出第1个月)
date("m",strtotime("2011-W06-1"));
答案 2 :(得分:2)
使用PHP DateTime对象(这是处理日期的首选方式,请参阅下面的链接以获取更多信息),您可以这样做:
$dateTime = new \DateTime();
$dateTime->setISODate($year,$week);
$month = $dateTime->format('n');
请注意,以下内容不适用于周" W"是not a supported format:
$month = \DateTime::createFromFormat("W/Y ", "1/2015")->format('n');
此方法使用的格式is the same supported by the function您尝试使用date_parse_from_format
,因此错误。
答案 3 :(得分:1)
像这样的东西会做,这也经过测试并起作用:
function getMonthByNumber($number,$year)
{
return date("F",strtotime('+ '.$number.' weeks', mktime(0,0,0,1,1,$year,-1)));
}
echo getMonthByNumber(27,2011);
希望这有帮助