PHP ISO-8601 週番号

PHPの日付関数をちらちら調べていたところ、標記の問題に直面した。
問題個所は、strftimeformatパラメータ内”%V”の
説明文です。この文を引用してみると、
「ISO-8601:1988 で規定された、指定した年の週番号。週の開始日は月曜日で、第1週は少なくとも4日はあることになる」
文の前段に問題はないが、後段がどうしても理解できない。
週の開始日は月曜日」とすると、何故「第1週は少なくとも4日はある」となるのか?
意地の悪い意見を言わせてもらえば、「第1週に限らず、週は常に7日に決まっている」はずです。

原文は、次の通り。
「ISO-8601:1988 week number of the given year, starting with the first week of the year with at least 4 weekdays, with Monday being the start of the week」
英語は苦手なので、Googleさんに翻訳してもらいました。
「ISO-8601:特定の年の1988年の週番号。少なくとも週4日の週の最初の週から始まり、月曜日は週の開始日」
いろいろ怪しい部分もありますが、こちらの方が表現的には正しいのではないか?
言葉で表現すると難しいので、表にして説明してみる。

ケース
1 1日 2日 3日 4日 5日 6日 7日
2 1日 2日 3日 4日 5日 6日
3 1日 2日 3日 4日 5日
4 1日 2日 3日 4日
5 1日 2日 3日
6 1日 2日
7 1日

「週4日」とは、年初からの日数で、週内に4日以上ある最初の週が、その年の第1週に
成るということです。つまり、上の表でいうと
(1)ケース1~ケース4:その年の第1週
(2)ケース5~ケース7:前年の第53週
ということになります。

PHPのドキュメントは、誰もが認める素晴らしいものです。
批判するつもりでこれを書いたのではなく、コンタクト方法が分からないので
関係者が偶然これを見て修正して戴ければとの思いで公開するものです。ご了承願います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


This blog is kept spam free by WP-SpamFree.