JavaScript での週番号の決定 PHP の date('W') と同様に、
PHP の date('W') 関数は、次の週番号を計算します。 ISO-8601 規格に基づいた年。 ISO-8601 の週番号は月曜日から始まり日曜日まで続きます。この記事では、JavaScript で同様の機能を実現する方法を説明します。
解決策
Merlyn の Web サイトでは、JavaScript で週を操作するための包括的なガイドを提供しています。
このガイドに基づいて、次のコード スニペットは ISO-8601 週を返します。指定された日付の番号:
/* For a given date, get the ISO week number * * Based on information at: * * https://www.merlyn.org/weekcalc.htm#WNR * * Algorithm is to find nearest thursday, it's year * is the year of the week number. Then get weeks * between that date and the first day of that year. * * Note that dates in one year can be weeks of previous * or next year, overlap is up to 3 days. * * e.g. 2014/12/29 is Monday in week 1 of 2015 * 2012/1/1 is Sunday in week 52 of 2011 */ function getWeekNumber(d) { // Copy date so don't modify original d = new Date(Date.UTC(d.getFullYear(), d.getMonth(), d.getDate())); // Set to nearest Thursday: current date + 4 - current day number // Make Sunday's day number 7 d.setUTCDate(d.getUTCDate() + 4 - (d.getUTCDay()||7)); // Get first day of year var yearStart = new Date(Date.UTC(d.getUTCFullYear(),0,1)); // Calculate full weeks to nearest Thursday var weekNo = Math.ceil(( ( (d - yearStart) / 86400000) + 1)/7); // Return array of year and week number return [d.getUTCFullYear(), weekNo]; } var result = getWeekNumber(new Date()); console.log('It\'s currently week ' + result[1] + ' of ' + result[0]);
このコードは、夏時間および特定の年の始まりのシナリオでの問題を回避するために UTC メソッドに依存しています。出力には、PHP の date('W') 関数と同様に、現在の年と週番号の両方が表示されます。
以上がPHP の「date('W')」と同じように、JavaScript で ISO 週番号を計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。