この記事では、JavaScript の Date クラスの詳細な説明 (コード例) を紹介します。必要な方は参考にしてください。
Date は JS の重要な組み込みオブジェクトです。そのインスタンスは主に時刻と日付を処理するために使用され、その時刻は 1970 年 1 月 1 日 (世界標準時) からのミリ秒数に基づいており、タイムスタンプの長さは次のようになります。 13 桁 (Unix のタイムスタンプとは異なり、長さは 10 ビットです)。日付と時刻については、無数の使用シナリオがあるため、いくつかの詳細と規則に特別な注意を払う必要があります。
は、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 操作符)会返回一个代表当前日期和时间的字符串。
// 以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
[Firefox]
不支持带 '-' 的完整时间,比如 new Date('2012-07-08 00:00:00') 为无效的值,而 new Date('2012-07-08') 是正确的值。
[month]
new Date(year, month, ……) 中的month从0开始计算
不同执行环境下的边界值有差异, Chrome 下甚至连负值都能支持。在实际生产环境中,不仅需要考虑时间的展示,还需要考虑其存储、计算等,因此在特定的场景下,我们需要尽可能考虑到数据库和浏览器中 Date 的有效范围。
以数据库 Derby
rrreee
パラメーターが入力されていない場合、次に、Date コンストラクターは、システムによって設定された現在時刻に基づいて Date オブジェクトを作成します。 | 少なくとも 2 つのパラメータが指定された場合、残りのパラメータはデフォルトで 1 (日付パラメータが指定されていない場合) または 0 に設定されます。 |
---|---|
JavaScript の Date オブジェクトは、いくつかの UTC 時間メソッドを提供し、それに応じてローカル時間メソッドも提供します。 UTC はグリニッジ標準時と呼ばれるもので、時間における世界標準時を指します。ローカル時間は、JavaScript を実行するクライアント コンピュータによって設定された時間を指します。 | JavaScript の Date オブジェクトを関数として (つまり、new 演算子を使用せずに) 呼び出すと、現在の日付と時刻を表す文字列が返されます。 |
3. 特別なリマインダー | [Firefox] | は new Date('2012-07-08 など) を含む完全な時刻をサポートしていません00 :00:00') は無効な値ですが、new Date('2012-07-08') は正しい値です。
| 月は 0 から始まります4 値の境界。 |
データベース | |
説明 | 境界値 |
最小の日付 |
の日。 mysql
中,其范围定义为 1000-01-01
to9999-12-31
;
在 js
中,时间戳的最小值为 -8640000000000000
即公元前 271,821 年 4 月 20 日,最大值为 8640000000000000
,即 275,760 年 9 月 13 日。规范中时间范围为 1970/1/1 前后 100,000,000
コンピューターアプリケーションでは、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. ライブラリJavaScript で Date クラスをカプセル化するサンプル コードの共有
以上がJavaScriptのDateクラスの詳細説明(コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。