目次
1. コンストラクター
2. 空值处理
3. 特别提示
4. 值的边界
ホームページ ウェブフロントエンド jsチュートリアル JavaScriptのDateクラスの詳細説明(コード例)

JavaScriptのDateクラスの詳細説明(コード例)

Sep 12, 2018 pm 05:24 PM
html5 javascript node.js

この記事では、JavaScript の Date クラスの詳細な説明 (コード例) を紹介します。必要な方は参考にしてください。

Date は JS の重要な組み込みオブジェクトです。そのインスタンスは主に時刻と日付を処理するために使用され、その時刻は 1970 年 1 月 1 日 (世界標準時) からのミリ秒数に基づいており、タイムスタンプの長さは次のようになります。 13 桁 (Unix のタイムスタンプとは異なり、長さは 10 ビットです)。日付と時刻については、無数の使用シナリオがあるため、いくつかの詳細と規則に特別な注意を払う必要があります。

1. コンストラクター

は、new Date() を通じてインスタンス化して、Date オブジェクトのインスタンスを取得できます。 Date() を直接実行すると、時刻文字列が取得されることに注意してください。 Date() ,将得到一个时间字符串。

new Date();
new Date(value);
new Date(dateString);
new Date(year, month[, day[, hour[, minutes[, seconds[, milliseconds]]]]]);
ログイン後にコピー

其中对构造函数的参数说明(参考 MDN ):

  • 如果没有输入任何参数,则Date的构造器会依据系统设置的当前时间来创建一个Date对象。

  • 如果提供了至少两个参数,其余的参数均会默认设置为1(如果没有提供day参数)或者0。

  • JavaScript的时间是由世界标准时间(UTC)1970年1月1日开始,用毫秒计时,一天由86,400,000毫秒组成。Date对象的范围是-100,000,000天至100,000,000天(等效的毫秒值)。

  • JavaScript的Date对象为跨平台提供了统一的行为。时间属性可以在不同的系统中表示相同的时刻,而如果使用了本地时间对象,则反映当地的时间。

  • JavaScript 的Date对象提供了数个UTC时间的方法,也相应提供了当地时间的方法。UTC,也就是我们所说的格林威治时间,指的是time中的世界时间标准。而当地时间则是指执行JavaScript的客户端电脑所设置的时间。

  • 以一个函数的形式来调用JavaScript的Date对象(i.e., 不使用 new 操作符)会返回一个代表当前日期和时间的字符串。

2. 空值处理

// 以chrome为例
new Date();
// Mon Oct 23 2017 23:38:02 GMT+0800 (CST)

new Date(false);
// Thu Jan 01 1970 08:00:00 GMT+0800 (CST)

new Date(0);
// Thu Jan 01 1970 08:00:00 GMT+0800 (CST)

new Date(null);
// Thu Jan 01 1970 08:00:00 GMT+0800 (CST)

new Date('');
// Invalid Date

new Date(undefined);
// Invalid Date
ログイン後にコピー

3. 特别提示

[Firefox]

不支持带 '-' 的完整时间,比如 new Date('2012-07-08 00:00:00') 为无效的值,而 new Date('2012-07-08') 是正确的值。

[month]

  • new Date(year, month, ……) 中的month从0开始计算

4. 值的边界

不同执行环境下的边界值有差异, Chrome 下甚至连负值都能支持。在实际生产环境中,不仅需要考虑时间的展示,还需要考虑其存储、计算等,因此在特定的场景下,我们需要尽可能考虑到数据库和浏览器中 Date 的有效范围。

以数据库 Derbyrrreee

コンストラクターのパラメーターの説明 (MDN を参照):
  • JavaScript 時間は、ミリ秒単位で測定される世界時 (UTC) の 1970 年 1 月 1 日から始まり、1 日は 86,400,000 ミリ秒で構成されます。 Date オブジェクトの範囲は、-100,000,000 日から 100,000,000 日 (同等のミリ秒値) です。
  • JavaScript の Date オブジェクトは、プラットフォーム間で統一された動作を提供します。 time 属性は、異なるシステムの同じ瞬間を表すことができ、ローカル時間オブジェクトが使用されている場合は、ローカル時間を反映します。
  • 2. Null 値の処理rrreee は new Date('2012-07-08 など) を含む完全な時刻をサポートしていません00 :00:00') は無効な値ですが、new Date('2012-07-08') は正しい値です。 [month]月は 0 から始まります4 値の境界。 境界値は実行環境によって異なります。Chrome では負の値もサポートされます。実際の運用環境では、時刻の表示だけでなく、その保存や計算なども考慮する必要があります。そのため、特定のシナリオでは、データベースとブラウザの日付の有効範囲を可能な限り考慮する必要があります。 。 データベース Derby の保存時間を例として取り上げます。その境界は次のとおりです: 01-01
    パラメーターが入力されていない場合、次に、Date コンストラクターは、システムによって設定された現在時刻に基づいて Date オブジェクトを作成します。 少なくとも 2 つのパラメータが指定された場合、残りのパラメータはデフォルトで 1 (日付パラメータが指定されていない場合) または 0 に設定されます。
    JavaScript の Date オブジェクトは、いくつかの UTC 時間メソッドを提供し、それに応じてローカル時間メソッドも提供します。 UTC はグリニッジ標準時と呼ばれるもので、時間における世界標準時を指します。ローカル時間は、JavaScript を実行するクライアント コンピュータによって設定された時間を指します。 JavaScript の Date オブジェクトを関数として (つまり、new 演算子を使用せずに) 呼び出すと、現在の日付と時刻を表す文字列が返されます。
    3. 特別なリマインダー [Firefox]
    • 新しい Date(年、月、…) の
    説明 境界値
    最小の日付
    🎜 🎜最大日付🎜🎜9999-12-31🎜🎜🎜🎜最小時間🎜🎜00:00:00🎜🎜🎜🎜最大時間🎜🎜24:00:00🎜🎜🎜🎜最小タイムスタンプ🎜 🎜0001 -01- 01-00.00.00.000000🎜🎜🎜🎜最大タイムスタンプ🎜🎜9999-12-31-23.59.59.999999🎜🎜🎜🎜

    の日。 mysql 中,其范围定义为 1000-01-01to9999-12-31
    js 中,时间戳的最小值为 -8640000000000000 即公元前 271,821 年 4 月 20 日,最大值为 8640000000000000,即 275,760 年 9 月 13 日。规范中时间范围为 1970/1/1 前后 100,000,000

    5. 2038 年のバグ

    2038 年以降はタイムスタンプが不十分だと聞きました。

    コンピューターアプリケーションでは、2038年問題により、2038年には一部のソフトウェアが正常に動作しなくなる可能性があります。 UNIX 時間を使用して時刻を表現するすべてのプログラムは、1970 年 1 月 1 日から経過した秒数で時刻を表現するため (閏秒を無視する)、この影響を受けます。この時間表現は Unix 系オペレーティング システムの標準であり、他のほとんどのオペレーティング システムで使用するために C プログラミング言語で開発されたソフトウェアに影響します。ほとんどの 32 ビット オペレーティング システムでは、「time_t」データ モードは、符号付き 32 ビット整数 (signedint32) を使用して、計算された秒数を保存します。 「time_t」標準によると、この形式で表現できる最後の時刻は、2038 年 1 月 19 日火曜日、03:14:07 (UTC) です。この時点を超えると、時刻はラップアラウンドされ、内部的には負の数として表されるため、プログラムはこの時刻を 2038 年として認識せず、個々の実装に応じて 1970 年または 1901 年に戻る可能性があるため、動作しなくなります。間違った計算やアクションが発生する可能性があります。

    7. ライブラリ

    • moment - 時間の解析、書式設定、計算などをサポートする強力な時間処理ライブラリです。強力で、ブラウザと Node.js をサポートしています。圧縮されたボリュームは約 16.3 KB

    • date- fns - moment よりも軽量で、サイズが小さいイベント処理ライブラリ

    • dayjs - より軽量な moment.js

    関連推奨事項:

    JavaScript で Date クラスをカプセル化するサンプル コードの共有

    JavaScript DOMサンプルコード詳細解説

    以上がJavaScriptのDateクラスの詳細説明(コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

    ホットAIツール

    Undresser.AI Undress

    Undresser.AI Undress

    リアルなヌード写真を作成する AI 搭載アプリ

    AI Clothes Remover

    AI Clothes Remover

    写真から衣服を削除するオンライン AI ツール。

    Undress AI Tool

    Undress AI Tool

    脱衣画像を無料で

    Clothoff.io

    Clothoff.io

    AI衣類リムーバー

    AI Hentai Generator

    AI Hentai Generator

    AIヘンタイを無料で生成します。

    ホットツール

    メモ帳++7.3.1

    メモ帳++7.3.1

    使いやすく無料のコードエディター

    SublimeText3 中国語版

    SublimeText3 中国語版

    中国語版、とても使いやすい

    ゼンドスタジオ 13.0.1

    ゼンドスタジオ 13.0.1

    強力な PHP 統合開発環境

    ドリームウィーバー CS6

    ドリームウィーバー CS6

    ビジュアル Web 開発ツール

    SublimeText3 Mac版

    SublimeText3 Mac版

    神レベルのコード編集ソフト(SublimeText3)

    HTMLの表の境界線 HTMLの表の境界線 Sep 04, 2024 pm 04:49 PM

    HTML の表の境界線に関するガイド。ここでは、HTML でのテーブルの境界線の例を示しながら、テーブル境界線を定義する複数の方法について説明します。

    HTML 左マージン HTML 左マージン Sep 04, 2024 pm 04:48 PM

    HTML マージン左のガイド。ここでは、HTML margin-left の概要とその例、およびそのコード実装について説明します。

    HTML のネストされたテーブル HTML のネストされたテーブル Sep 04, 2024 pm 04:49 PM

    これは、HTML でのネストされたテーブルのガイドです。ここでは、テーブル内にテーブルを作成する方法をそれぞれの例とともに説明します。

    HTML テーブルのレイアウト HTML テーブルのレイアウト Sep 04, 2024 pm 04:54 PM

    HTML テーブル レイアウトのガイド。ここでは、HTML テーブル レイアウトの値と例および出力について詳しく説明します。

    HTML入力プレースホルダー HTML入力プレースホルダー Sep 04, 2024 pm 04:54 PM

    HTML 入力プレースホルダーのガイド。ここでは、コードと出力とともに HTML 入力プレースホルダーの例について説明します。

    HTML 順序付きリスト HTML 順序付きリスト Sep 04, 2024 pm 04:43 PM

    HTML 順序付きリストのガイド。ここでは、HTML 順序付きリストと型の導入とその例についても説明します。

    HTML 内のテキストの移動 HTML 内のテキストの移動 Sep 04, 2024 pm 04:45 PM

    HTML でのテキストの移動に関するガイド。ここでは、概要、マーキー タグが構文でどのように機能するか、および実装例について説明します。

    HTML の onclick ボタン HTML の onclick ボタン Sep 04, 2024 pm 04:49 PM

    HTML オンクリック ボタンのガイド。ここでは、それらの紹介、動作、例、およびさまざまなイベントでの onclick イベントについてそれぞれ説明します。

    See all articles