我正在创建一个必须“永不”过期的cookie,虽然我不确定这是否可能,作为妥协,我决定将“expires:”日期设置为2099/12/31 23:59 :59。但是,要获得此日期,我需要将其设置如下:
var killdate = new Date(2099, 11, 31, 23, 59, 59);
现在,除非我错过了什么,否则11月31日没有,所以我为什么要这样设定日期呢?
这是一个好奇的事情,而不是我的代码的一个主要问题(虽然,我想确保我没有搞砸任何东西)但我的在线研究并没有成功地为我清理它
由于
答案 0 :(得分:2)
答案 1 :(得分:0)
请注意,某些浏览器在2038
之后的日期出现问题(当unix epoch time
超过32-bit
int
时)
var killdate = new Date(2099, 11, 31, 23, 59, 59);
现在,除非我错过了什么,否则11月31日没有,所以我为什么要这样设定日期?
这只是未来使用的日期,距离现在已经足够了。在您的示例中,日期实际为31-Dec-2099 23:59:59
(月份从0到11)
仅为知识您的好奇心:
JS Date对象是从Java 1.0移植的,这就是原因。继承其所有缺陷。
除了当月的所有日期都是0,see here for a full list including ranges
答案 2 :(得分:0)
天数占任何给定月份的较长天数,而非特定月份。
Max hours = 23
Max minutes = 59
Max seconds = 59
Max days = 31
Max months = 12
Max years = varies/changes
他们从不相互依赖。我认为,如果你使用的是UNIX时间戳,那么它们就占了这个月的日子。