Javascript 如何设置72小时后到期的日期

Javascript 如何设置72小时后到期的日期,javascript,jquery,date,Javascript,Jquery,Date,功能: 用户玩游戏,当用户赢了,他们将被导航到一个赎回页面。用户必须在72小时内从goodie页面兑换goodie。因此,兑换将在用户进入祝贺兑换页面后72小时内到期 所做的工作: 首先,我尝试在用户被导航到祝贺页面时获取当前系统时间 第二,我试图通过增加3天来获得到期日,将其设置为72小时后 最后,我尝试将计算出的到期日附加到for expiration date 问题: 不知何故,过期日期显示不正确。例如,如果今天的日期是8/3,则结果显示为14/2 因此,日期显示的不是72小时后,而是一个

功能:

用户玩游戏,当用户赢了,他们将被导航到一个赎回页面。用户必须在72小时内从goodie页面兑换goodie。因此,兑换将在用户进入祝贺兑换页面后72小时内到期

所做的工作:

首先,我尝试在用户被导航到祝贺页面时获取当前系统时间

第二,我试图通过增加3天来获得到期日,将其设置为72小时后

最后,我尝试将计算出的到期日附加到for expiration date

问题:

不知何故,过期日期显示不正确。例如,如果今天的日期是8/3,则结果显示为14/2

因此,日期显示的不是72小时后,而是一个月前几天

我做错了什么

功能赢{ //获取当前系统时间和日期 var endDate=新日期; //获得有效期 var date=新的DateendDate; date.setDatedate.getDate+3; var expiryDate=date.getDate+3+/+date.getMonth; document.getElementById'ExpiryDate'。innerHTML=ExpiryDate; 控制台日志测试; $my-memory-game.fadeout功能{ win_视频; } } 您的浏览器不支持HTML5画布标记。 首先,把握好月份 在javascript中,月份索引从0到11,而不是从1到12。因此,在显示月份数值时,应该始终执行date.getMonth+1。这就是为什么你的情况是2月2日而不是3月3日

然后,那天 你加3天两次8+3x2=14 yey

date.setDate(date.getDate() + 3);
var expiryDate = (date.getDate() + 3) + "/" + (date.getMonth());

删除第二个+3,您就可以开始了。

您只需在日期中添加3即可:

var now=新日期; //复制日期实际上毫无意义,但是嘿。。。 var expireDate=新日期+现在; //加3天 expireDate.setDateexpireDate.getDate+3; //显示日期和月份,请注意,该月份的索引为零,因此添加1 //当显示它时
document.writeexpireDate.getDate+'/'+expireDate.getMonth+1;0是基于索引的,所以2是March@Hacketo所以我必须在getMonth做+2??不,如果2是三月,你应该做+1得到3。但还有一个问题,如果第31天,你将在第31天的基础上加上3天,即34天,那么第34天就不存在了。。看这个帖子:不,你应该做+3,因为三月是3。因此,从getMonth+3中得到的值是正确的。@Mikelamers为什么选择getMonth+3?没有道理。。我将返回5