JavaScript で年の週番号を取得する

Subodh Poudel 2023年10月12日
  1. getFullYear() および getDay() 関数を new Date() のオブジェクトとともに使用して、現在の日付の週番号を取得する
  2. Luxon の DateTime データ構造とその weekNumber プロパティを使用して、今年の現在の週番号を取得する
JavaScript で年の週番号を取得する

JavaScript でその年の現在の週番号を検索するメソッドを紹介し、new Date() コンストラクターのオブジェクトと、getFullYear()getDay() などの関数を作成します。このメソッドは、1 年の合計日数を検索し、週番号を検索します。このメソッドでは、floor()ceil() などの Math オブジェクトの関数を使用します。

この記事では、JavaScript ラッパーLuxon を使用して JavaScript で現在の週番号を取得する別の方法も紹介します。Luxon は、JavaScript の日付と時刻のライブラリです。このライブラリの DateTime データ構造と weekNumber プロパティを使用します。また、DataTime データ構造で now 関数を使用します。

また、define() 関数を使用して PHP でグローバル変数を宣言するメソッドについても説明します。このメソッドは、PHP で定数グローバル変数を宣言する方法です。変数の値は後で変更できません。

getFullYear() および getDay() 関数を new Date() のオブジェクトとともに使用して、現在の日付の週番号を取得する

このメソッドは、new Date() コンストラクターとそのオブジェクトを getFullYear()getDay() などの関数とともに使用して、その年の現在の週番号を取得します。Date オブジェクトは現在の日付を返します。getDay() 関数は、整数値で現在の曜日を検索します。Date() コンストラクターのオブジェクトを作成して、現在の日付を取得できます。オブジェクトは関数 getFullYear() を呼び出して、現在の年の始まりを取得します。日の差を 1 日の合計ミリ秒で割ることにより、1 日の始まりから現在の時刻までの合計日数を求めることができます。Math オブジェクトの floor() 関数を使用して、値を四捨五入して整数を取得できます。このメソッドは、最終的にその年の週数を計算し、合計日数を 7 で除算します。

たとえば、Date オブジェクト currentdate を作成します。別の変数 oneJan を作成して、今年の初日を保存します。そのためには、変数に新しい Date オブジェクトを作成し、Date() コンストラクターの最初のパラメーターとして currentdate オブジェクトを使用して getFullYear() 関数を呼び出します。2 番目と 3 番目のパラメーターとして 01 を使用します。変数 oneJancurrentdate から減算し、それを 86400000 で除算します。Math.floor() 関数内で操作をラップし、変数 numberOfDays に割り当てます。currentdate オブジェクトを使用して getDay() 関数を呼び出し、変数 numberOfDays と値 1 を追加します。この操作を Math.ceil() 関数でラップし、結果を result 変数に格納します。文字列補間を使用して、currentdate 変数とともに変数をコンソールに記録します。

以下の例では、現在の日付を検索してから、現在の年の最初の日を検索します。2 行目のパラメータ 01 は、現在の年の最初の月と最初の日を表します。currentdate から oneJan を引くとミリ秒単位の値が得られるため、86400000 である 1 日の合計ミリ秒で差が除算されます。getDay() 関数は、0 で始まる整数形式で日を返すため、1 を追加します。したがって、現在の週番号が計算されます。

サンプルコード:

currentdate = new Date();
var oneJan = new Date(currentdate.getFullYear(), 0, 1);
var numberOfDays = Math.floor((currentdate - oneJan) / (24 * 60 * 60 * 1000));
var result = Math.ceil((currentdate.getDay() + 1 + numberOfDays) / 7);
console.log(
    `The week number of the current date (${currentdate}) is ${result}.`);

出力:

The week number of the current date (Tue May 25 2021 16:55:53 GMT+0545 (Nepal Time)) is 21.

Luxon の DateTime データ構造とその weekNumber プロパティを使用して、今年の現在の週番号を取得する

Luxon ライブラリを使用して、DateTime データ構造と weeknumber プロパティを使用して、その年の現在の週番号を取得できます。DateTime は、タイムスタンプ、タイムゾーン、および構成プロパティで構成されます。now 関数で使用される DateTime は、システムのタイムゾーン内の現在の瞬間の日付と時刻を返します。weekNumber プロパティは、現在の年の週番号にアクセスします。toISO() 関数を使用して、DateTime を ISO 形式に変換できます。

最初の行の luxon/src/datetime.js から DateTime オブジェクトをインポートします。Luxon ソースコードをダウンロードすることを忘れないでください。ソースコードを JavaScript ファイルに保存し、HTML セクションの script タグを使用してファイルを含めるようにしてください。DateTime オブジェクトを使用して now() 関数を呼び出してから、weekNumber プロパティを呼び出します。それを変数 date に割り当てます。次に、変数 date をコンソールに記録します。DateTime オブジェクトとプロパティの詳細については、Luxon ドキュメントを参照してください。

コード例:

import DateTime from 'luxon/src/datetime.js'
const date = DateTime.now().weekNumber
console.log(`The current week number is ${date}`)

出力:

The current week number is 21
著者: Subodh Poudel
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn

関連記事 - JavaScript DateTime