ホームページ > ウェブフロントエンド > jsチュートリアル > PHP の「date('W')」と同じように、JavaScript で ISO 週番号を計算するにはどうすればよいですか?

PHP の「date('W')」と同じように、JavaScript で ISO 週番号を計算するにはどうすればよいですか?

DDD
リリース: 2024-12-12 22:48:16
オリジナル
684 人が閲覧しました

How to Calculate ISO Week Numbers in JavaScript, Just Like PHP's `date('W')`?

JavaScript での週番号の決定 PHP の date('W') と同様に、

PHP の date('W') 関数は、次の週番号を計算します。 ISO-8601 規格に基づいた年。 ISO-8601 の週番号は月曜日から始まり日曜日まで続きます。この記事では、JavaScript で同様の機能を実現する方法を説明します。

解決策

Merlyn の Web サイトでは、JavaScript で週を操作するための包括的なガイドを提供しています。

  • [協力中週](https://www.merlyn.org/2005/11/04/working-with-weeks/)

このガイドに基づいて、次のコード スニペットは 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート