JavaScript による時間の計算方法

王林
リリース: 2023-05-17 21:16:09
オリジナル
2546 人が閲覧しました

JavaScript は、Web 開発、モバイル アプリケーション開発、デスクトップ アプリケーション開発などの分野で広く使用されている非常に人気のあるプログラミング言語です。 JavaScript では、時間は非常に重要なデータ型であり、時間は JavaScript の組み込み Date オブジェクトを通じて表現および操作できます。この記事では、JavaScript が時間を計算する方法について説明します。

1. JavaScript での時間表現

JavaScript では、時間は Date オブジェクトの形式で表現されます。 Date オブジェクトのコンストラクターは、整数パラメーター、または 1970 年 1 月 1 日の 00:00:00 UTC から経過したミリ秒数を表す年、月、日、時、分、秒、およびミリ秒の値の特定のセットを受け入れます。 。たとえば、次のコードは、2021 年 9 月 1 日の 12:34:56 を表す Date オブジェクトを作成します。

var date = new Date(2021, 8, 1, 12, 34, 56);
ログイン後にコピー

ここで、月は 0 から数え始めるため、8 は 9 月を表します。ミリ秒数を直接渡すこともできます。

var date = new Date(1630472096000);
ログイン後にコピー

上記の 2 つのコード スニペットによって作成された日付オブジェクトは同等です。

2. JavaScript での時間操作

JavaScript では、Date オブジェクトに対して基本的な加算および減算操作を実行して、新しい日付と時刻のオブジェクトを取得できます。一般的な時間操作は次のとおりです。

  1. 加算操作

Date オブジェクトの getTime() メソッドは、1970 年 1 月 1 日 00:00:00 以降の日付を返すことができます。 UTC 指定された時刻から経過したミリ秒数。したがって、2 つの Date オブジェクトを追加すると、それらの間の時差 (ミリ秒単位) が得られます。次に、この時差を別の Date オブジェクトに加算して、新しい Date オブジェクトを取得します。これは、指定された時差を加算することを意味します。

たとえば、次のコードは、2021 年 9 月 1 日の 12:34:56 の次の秒を表す Date オブジェクトを作成します。

var date = new Date(2021, 8, 1, 12, 34, 56);
var nextSecond = new Date(date.getTime() + 1000);
ログイン後にコピー

このうち、nextSecond は 2021 年 9 月を表す日付です。 1日12時34分57秒の日付オブジェクト。

同様に、Date オブジェクトの setTime() メソッドを使用して、指定した時間のミリ秒数を設定することもできます。例:

var date = new Date(2021, 8, 1, 12, 34, 56);
date.setTime(date.getTime() + 1000);
ログイン後にコピー

上記のコードは、日付オブジェクトを設定します。 2021 年 9 月 1 日を表す時刻は 12:34:57 です。

  1. 減算演算

同様に、2 つの Date オブジェクトを減算して、それらの間の時間差を取得できます。一般的な減算演算は次のとおりです。

(1) 2 つの Date オブジェクト間の時間差 (ミリ秒単位) を計算します。

var date1 = new Date(2021, 8, 1, 12, 34, 56);
var date2 = new Date(2021, 8, 2, 12, 34, 56);
var diff = date2.getTime() - date1.getTime();
ログイン後にコピー

上記のコードでは、diff の値が 86400000 になります。は 24 時間 (246060*1000 ミリ秒) です。

(2) 現在時刻と指定時刻の間の時間差 (ミリ秒単位) を計算します:

var date = new Date(2021, 8, 1, 12, 34, 56);
var now = new Date();
var diff = now.getTime() - date.getTime();
ログイン後にコピー

上記のコードは、現在時刻と 2021 年 9 月 1 日の差分値を取得します。 12 :34:56 間の時間差 (ミリ秒単位)。

  1. 時間間隔の計算

JavaScript には、getTime()、getFull Year()、getMonth()、getDate() など、時間間隔を計算するための組み込み関数がいくつかあります。 getDay()、getHours()、getMinutes()、getSeconds()、getMilliseconds() など。

たとえば、次のコードは、2021 年 9 月 1 日の 12:34:56 から現在時刻までの時間間隔を計算します。

var date = new Date(2021, 8, 1, 12, 34, 56);
var now = new Date();
var yearDiff = now.getFullYear() - date.getFullYear();
var monthDiff = now.getMonth() - date.getMonth();
var dayDiff = now.getDate() - date.getDate();
var hourDiff = now.getHours() - date.getHours();
var minuteDiff = now.getMinutes() - date.getMinutes();
var secondDiff = now.getSeconds() - date.getSeconds();
var millisecondDiff = now.getMilliseconds() - date.getMilliseconds();
ログイン後にコピー

上記のコードは、現在時刻と 2021 年 9 月を取得します。 1 日の 12:34:56 からの時間間隔 (年、月、日、時、分、秒、ミリ秒)。これらの値は、特定のニーズに基づいて時間計算に組み合わせて使用​​できます。

3. JavaScript での日付書式設定

実際の開発では、通常、表示や他のシステムとの対話を容易にするために、Date オブジェクトを指定された日付形式に変換する必要があります。 JavaScript には、次のような一般的に使用される日付書式設定関数がいくつか用意されています。

  1. toDateString(): Date オブジェクトを Weekday Month Date Year の形式の日付文字列に変換します (例: Thu Apr 8 2021 )。
  2. toTimeString(): Date オブジェクトを hh:mm:ss GMT 0800 (タイムゾーン) 形式の時刻文字列に変換します。例: 09:28:14 GMT 0800 (中国標準時)。
  3. toLocaleDateString(): Date オブジェクトをローカライズされた日付文字列に変換します (例: 2021 年 4 月 8 日)。
  4. toLocaleTimeString(): Date オブジェクトをローカライズされた時刻文字列 (例: 9:28:14 AM) に変換します。
  5. toLocaleString(): Date オブジェクトをローカライズされた日付時刻文字列に変換します (例: 2021 年 4 月 8 日 9:28:14 AM)。
  6. toUTCString(): Date オブジェクトを UTC 標準時間文字列に変換します (例: Thu, 08 Apr 2021 01:28:14 GMT)。

上記の機能に加えて、サードパーティのライブラリを使用したり、日付と時刻をフォーマットするコードを手動で記述したりすることもできます。

4. 結論

この記事では、時間表現、加減算、時間間隔の計算、日付の書式設定など、JavaScript で時間を計算する方法を紹介します。 JavaScript の時間計算関数は非常に強力で、Web ページの動的効果、カウントダウン関数、タイムスタンプ変換など、さまざまな分野に応用できます。この記事で紹介する内容を学ぶことで、JavaScript の時間計算に関する知識をより深く理解し、より柔軟に実務に活用できるようになります。

以上がJavaScript による時間の計算方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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