-1

有効期限が切れない Cookie を作成していますが、これが可能かどうかはわかりません。妥協点として、「有効期限:」の日付を 2099/12/31 23:59:59 に設定することにしました。ただし、この日付を取得するには、次のように設定する必要があります。

var killdate = new Date(2099, 11, 31, 23, 59, 59);

さて、何かを見逃していない限り、11 月 31 日はないのに、なぜそのように日付を設定しなければならないのでしょうか?

これは私のコードの重大な問題というよりも好奇心の問題です (ただし、何かをいじっていないことを確認したいと思います) が、私のオンライン調査では、それを解決するのにまったく成功していません。

ありがとう

4

3 に答える 3

2

MDN ドキュメントから:

month 月
を表す整数値で、1 月の 0 から 12 月の 11 までです。

月は 1 ~ 12 ではなく、0 ~ 11 です。設定している日付は、実際には 2099 年 12 月 31 日です。

于 2013-03-18T20:39:56.347 に答える
0

一部のブラウザーでは過去の日付に問題があることに注意してください2038( unix epoch timea を超える場合32-bit int) 。

var killdate = new Date(2099, 11, 31, 23, 59, 59);

さて、何かを見逃していない限り、11 月 31 日はないのに、なぜそのように日付を設定しなければならないのでしょうか?

これは、現在から十分に遠い未来の日付です。そしてあなたの例では、日付は実際には 31-Dec-2099 23:59:59(月は0から11まで数えます)

あなたの好奇心のASの知識のためだけに:

JS Date オブジェクトが Java 1.0 から移植されたのはそのためです。そのすべての欠点を継承します。

月の日以外はすべて 0 ベースです。範囲を含む完全なリストについては、こちらを参照してください

于 2013-03-18T20:42:04.620 に答える
0

日は、特定の月ではなく、特定の月のより長い日を説明します。

Max hours = 23
Max minutes = 59
Max seconds = 59
Max days = 31
Max months = 12
Max years = varies/changes

それらは互いに依存することはありません。UNIXタイムスタンプを使用している場合、それらは月の日付を占めると思います。

于 2013-03-18T20:42:51.370 に答える