
日付と時刻はプログラミング プロセスで無視できない必修科目です。幸いなことにJavaScriptには組み込みオブジェクト Date (日付) が用意されています。このオブジェクトを通じて、作成、保存、変更、時間の測定、印刷などの基本的な操作を行うことができます。これは、すべてのJavaScriptプログラマーにとって必須のコースの 1 つです。
通常のオブジェクトと同じです。 new Date()を使用してDateオブジェクトを作成でき、作成中にいくつかの初期化パラメータを渡すこともできます。
パラメーターなしで
let now = new Date()console.log(now)
コードの実行結果は次のとおりです。

これは、コードが実行されたときの特定の時刻を出力するだけです。ここに示されているのは2022年6月22日19点25份24秒です。
ミリ秒パラメータを持つ日付オブジェクトを作成します。 millisecondsは、1970 年 1 月 1 日の UTC+0 からのミリ秒数を指します (1 ミリ秒 = 1/1000 秒)。
//時間を作成します。たとえば、1970.1.1 時点 0 ミリ秒 let jan01_1970 = new Date(0) コンソールログ(jan01_1970) //1970 年の 1.1 時点から 3 日後の時刻を作成します (3 日 * 24 時間 * 3600 秒 * 1000 ミリ秒) let jan04_1970 = 新しい日付(3 * 24 * 3600 * 1000) Console.log(jan04_1970)
コードの実行結果:

milliseconds 1970 年 1 月 1 日の 00:00:00 から経過したミリ秒数であり、タイムスタンプと呼ばれます。
タイムスタンプは日付を単純にデジタル表現したもので、通常はnew Date(milliseconds)を使用して日付を作成します。すでにDateオブジェクトがある場合は、 date.getTime()使用して日付に対応するタイムスタンプを取得できます。
注:
中国はゾーン 8 にあるため、上記の例の時刻は 00:00:00 ではなく、
タイムスタンプは整数だけでなく、負の数値にすることもできます。例:
//1969-12-31 00:00:00let dec31_1969 = new Date(-24 * 3600 * 1000)console.log(dec31_1969)
code実行結果:

が作成されるたびにタイムスタンプを使用する場合、タイムスタンプの計算がまだ少し難しいため、不便になる可能性があります。
時刻文字列を使用して時刻を作成することもできます。例:
let date = new Date('2022-06-22 00:00:00') console.log(date)コードの実行結果:

year — 4 桁の数字である必要があります;month — [0,11] 、 0 1 月1 、hours/minutes/sec/ms - デフォルトは 0 です。例:
let date = new Date(2022,6,22,20,35,33)console.log(date)
コードの実行結果:

ミリ秒数を指定することもできます。
let date = new Date(2022,6,22,20,35,33,777)console.log(date)
Dateオブジェクトがある場合は、構築されたDateオブジェクトの -in メソッドで、年、月、日などの時間の一部を取得します。
たとえばdate
let date = new Date(2022,5,22,20,35,33)
getFullYear()年を取得し、 date.getFullYear() 2022を返しますgetMonth() month の場合、 date.getMonth() 5 6 ) を返し、getDate()現在の月の日付を取得し、 date.getDate()は22を返します。getDay()現在の時刻の曜日、 date.getDay() 3返します。注:
- 上記の日付はすべて現地の日付に基づいています。たとえば、私は中国のタイムゾーンにいます
getFullYear使用すると 2 桁のgetYearが返されます。
getUTCFullYear()やgetUTCMonth() 、 getUTCDayなどに対応して、 0タイム ゾーンの時刻UTC時刻) を取得することもできます。 getの後にUTC挿入するだけです。
例:
let date = new Date(2022,5,22,20,35,33)console.log(date.getHours(),date.getUTCHours())
コードの実行結果:

夜になると中国のタイムゾーンと0タイムゾーンの差が8時間あることもわかります。
getTime()日付のタイムスタンプを返しますが、このメソッドにはUTCモードがありません。getTimezoneOffset()ローカル タイム ゾーンと0タイム ゾーンの時差を分単位で返しますがUTCDateオブジェクトのメソッドを使用して日付を設定することもできます。
setFullYear(year, [month], [date])の特定の部分は、年 (月、日) を設定しますsetMonth(month, [date])月(日)を設定しますsetDate(date)日付(月の日)を設定しますsetHours(hour, [min], [sec], [ms])時間 (分、秒、ミリ秒) を設定しますsetMinutes(min, [sec], [ms])分 (秒、ミリ秒) を設定しますsetSeconds(sec, [ms])秒 (ミリ秒) を設定しますsetMilliseconds(ms)ミリ秒を設定しますsetTime(milliseconds) ( 1970-01-01 00:00:00 UTC+0からのミリ秒数を使用します) 1970-01-01 00:00:00 UTC+0全体の日付を設定する場合))上記の関数のうち、 UTCバリアントを使用しないのはsetTime()だけです。
JavaScriptのDateは自動校正機能があり、時刻の計算に非常に便利です。
例:
let date = new Date(2022,5,38)//ここで 38console.log(date) コードの実行結果に注目してください
。

実行結果から、「2022年6月38日」はプログラム上でエラーになったのではなく、日付が「2022年7月8日」に変換されていることがわかります。
上記のケースでは、 JavaScriptでは範囲外の日付がDateオブジェクトによって自動的に割り当てられることが確認されました。このように、 Dateオブジェクトを使用して日付を非常に便利に計算できます。
たとえば、日付の年、月、日を加算および減算できます。
let date = new Date(2022,5,23)//現在時刻は 2022-6-23date.setDate(date.getDate() + 8)//8 日後の時間を計算します console.log(date)
コードの実行結果:

同様に、 date.setSeconds()メソッドを使用して日付を秒単位で計算することもできます。
、日付のDate計算した結果は、 date.getTime()の戻り値と同じであり、ミリ秒単位の値です。
let date = new Date()console.log(+date)
code 実行結果:

時間の本質は数値であるため、時差の計算もms (ミリ秒)単位で行うことができます。
例:
let date1 = new Date(2022,5,23)let date2 = new Date(2022,5,24)console.log(`時差は ${date2-date1}ms`)コードの実行結果は次のようになります
。:

現在時刻を取得したい場合は、 Date.now()メソッドを使用する方が良い方法です。このメソッドは、追加のDateオブジェクトを作成せずに現在の時刻のタイムスタンプを返します。これはメモリ オーバーヘッドとガベージ コレクションに適しており、コードはより単純です。
例:
let begin = Date.now()for(let i = 1;i<100000;i++){
let num = i * i * i;}let end = Date.now()console.log(`consume time ${end - begin}ms`)コードの実行結果:

Date.parse()メソッドは日付文字列を読み取ってタイムスタンプに変換できますが、文字列は特定のルールYYYY-MM-DDTHH:mm:ss.sssZに準拠する必要があります。
YYYY-MM-DD年-月-日T区切り文字HH:mm:ss.sssに対応し时:分:秒.毫秒Z +-hh:mm形式のタイムゾーンです。単一の文字Z UTC+0YYYY-MM-DD 、 YYYY-MM 、 YYYYなどの短縮形で記述できる UTC+0 文字列を表します。
ちょっとしたヒントを与えると、
let ms = Date.parse('2022-06-23T19:38:30.777+08:00')//タイムスタンプ let date = new Date(ms)console.log(date)コードの実行結果:

JavaScript Dateオブジェクトを使用して時刻を処理します: new Date() ;Dateは多くの実用的なメソッドがあり、Dateオブジェクトは自動的に調整されますDate.now()時刻を効率的に取得できます。