日付と時刻はプログラミング プロセスで無視できない必修科目です。幸いなことに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
タイム ゾーンの時差を分単位で返しますがUTC
Date
オブジェクトのメソッドを使用して日付を設定することもできます。
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+0
YYYY-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()
時刻を効率的に取得できます。