之前需求是当前时间+5天,写法如下
var dataCur = new Date(); //当前日期
var dataDef = dataCur.getFullYear() + '-' + (dataCur.getMonth() + 1) + '-' + (dataCur.getDate() + 5)
但这种写法有个问题,就是月末比如今天 3.28 + 5天,就成 3.33号(么有这个日期)
于是换了种写法,先将时间转成时间戳,将时间戳+5天(86400 * 5),就不会有这种问题,写法如下:
//时间默认值,默认当前时间+5天
var dataCur = new Date(); //当前日期
dataCur = dataCur.getFullYear() + '-' + (dataCur.getMonth() + 1) + '-' + dataCur.getDate() + " 00:00:00";
var dataCurPar = Date.parse(new Date(dataCur))/1000;//转换为时间戳
dataCurPar += 86400 * 5;//加5天后的时间戳
var dataDefPar = new Date(parseInt(dataCurPar) * 1000);//转换为时间
var dataDef = dataDefPar.getFullYear() + '-' + (dataDefPar.getMonth() + 1) + '-' + (dataDefPar.getDate());
本文探讨了在JavaScript中处理日期时遇到的问题,即直接加减天数可能导致非预期结果。通过举例说明了在月末日期加减天数时的错误,并提出了一种解决方案:将日期转换为时间戳进行计算,以确保日期的准确性。这种方法避免了日期越界的问题,保证了日期加减操作的正确性。

被折叠的 条评论
为什么被折叠?



