1

我能够获取当前日期,但我不知道如何获取当前日期 + 1 天(格林威治标准时间)

var now = new Date();
var newexp = (now + 3);
var show = newexp.getGMTString();

alert(show);

我真正想做的是设置一个 cookie 在 1 天内过期。

function SetCookie(name, value, exp) {
 var now = new Date();
 var newexp = (now + exp); // exp being # of days before expiration
 document.cookie= name + "=" + value+ "; expires=" + newexp.getGMTString() + ";"
}

SetCookie('name', 'john', '3');

显然,这是行不通的。

4

3 回答 3

5

Javascript Date对象让您可以非常轻松地操作它存储在其中的日期。

要获得明天的 Date 对象,您需要做的就是......

var date = new Date();
date.setDate(date.getDate() + 1);
于 2012-07-04T20:16:11.500 回答
2
function SetCookie(name, value, exp) {
var now = new Date();
now.setTime(now.getTime()+(exp*24*60*60*1000));
document.cookie= name + "=" + value+ "; expires=" + now.toGMTString() + ";"
}

SetCookie('name', 'john', '3');

编辑它以 exp 作为因素,它是否。天。

于 2012-07-04T20:18:24.443 回答
2

另一种思考方式是回到基本的“自纪元以来的毫秒数”表示:

var date = new Date()
date.setTime(date.getTime() + 24 * 60 * 60 * 1000)

或使用两个单独的变量:

var now = new Date()
var expiry = new Date(now.getTime() + 24 * 60 * 60 * 1000)

或内联它:

var expiry = new Date(new Date().getTime() + 24 * 60 * 60 * 1000)

请注意,这将为您提供现在 24 小时后的日期。这“明天同一当地时间”不同,后者可能是 23 或 25 小时(如果 2011 年 12 月在萨摩亚,甚至不存在)。就个人而言,我更喜欢“固定时间长度”但 YMMV 的良好稳定方法。

显然,要使到期天数不同,只需将 24 * 60 * 60 * 1000 常数(即一天中的毫秒数)乘以您想要的天数。

于 2012-07-04T20:18:53.737 回答