一年中的每个星期?

发布于 2024-11-10 02:21:35 字数 214 浏览 0 评论 0原文

我试图通过一年中的周数和一年中的周数来获取一年中的月份数。 例如,第 1 周是 1 月,返回 1,第 6 周是 2 月,所以我想要 2。

我尝试使用 date_parse_from_format('W/Y') 但没有成功(它给了我错误)。

有什么方法可以使用 date_parse_from_format() 或者还有其他方法吗?

I'm trying to get the number of the month of the year by the number of a week of the year and the year.
So for example week 1 is in january and returns 1, week 6 is in february so I want 2.

I tried to go with date_parse_from_format('W/Y') but had no success (it's giving me errors).

Is there any way to go with date_parse_from_format() or is there another way?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

蓝眸 2024-11-17 02:21:35
print date("m",strtotime("2011-W6-1"));

(请注意,2011 年,一月有六周,因此第 6 周(根据某些定义)属于第一个月)。

print date("m",strtotime("2011-W6-1"));

(noting that in 2011, January has six weeks so week 6 (by some definitions) is in month 1).

听风念你 2024-11-17 02:21:35

只是想为第一个答案添加注释,第 1 周到第 9 周的周数应为 01-09(如果不添加前导零,它将始终给出第 1 个月)

date("m",strtotime("2011-W06-1"));

Just wanted to add a note for the first answer, the week number should be 01-09 for Weeks 1 through 9 (it will always give month 1 if you don't add the leading zero)

date("m",strtotime("2011-W06-1"));
枕头说它不想醒 2024-11-17 02:21:35

使用 PHP DateTime 对象(这是处理日期的首选方法,请参阅下面的链接以获取更多信息),您可以通过以下方式完成它:

$dateTime = new \DateTime();
$dateTime->setISODate($year,$week);
$month = $dateTime->format('n');

请注意,以下内容将不起作用,因为周“W”是 不支持的格式

$month = \DateTime::createFromFormat("W/Y ", "1/2015")->format('n');

此方法使用的格式 是您尝试使用 date_parse_from_format 的函数支持相同的功能,因此会出现错误。

Using PHP DateTime objects (which is the preferred way of dealing with dates see links below for more info) you can accomplish it this way:

$dateTime = new \DateTime();
$dateTime->setISODate($year,$week);
$month = $dateTime->format('n');

Note that the following will not work as week "W" is not a supported format:

$month = \DateTime::createFromFormat("W/Y ", "1/2015")->format('n');

The format used by this method is the same supported by the function you where trying to use date_parse_from_format, hence the errors.

苏别ゝ 2024-11-17 02:21:35

像这样的事情就可以了,这也经过测试并且有效:

function getMonthByNumber($number,$year)
{
    return date("F",strtotime('+ '.$number.' weeks', mktime(0,0,0,1,1,$year,-1)));
}

echo getMonthByNumber(27,2011);

希望这有帮助

Something like this will do, this is also tested and works:

function getMonthByNumber($number,$year)
{
    return date("F",strtotime('+ '.$number.' weeks', mktime(0,0,0,1,1,$year,-1)));
}

echo getMonthByNumber(27,2011);

Hope this helps

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文