【发布时间】:2011-05-11 07:25:46
【问题描述】:
我有日期对象:
dateObj = new Date(年、月、日[、时、分、秒、毫秒])如何获取 dateObj - 1 天?
【问题讨论】:
标签: javascript
我有日期对象:
dateObj = new Date(年、月、日[、时、分、秒、毫秒])如何获取 dateObj - 1 天?
【问题讨论】:
标签: javascript
dateObj.setDate(dateObj.getDate()-1);
【讨论】:
Date 对象术语,表示“月份中的某天”。即使在本月 1 日,也可以从中减去一个,因为 JavaScript Date 对象对此很聪明。
减去一天(1000 毫秒 * 60 秒 * 60 分钟 * 24 小时):
new Date(+new Date(year, month, date[, hours, minutes, seconds, ms] ) - 1000*60*60*24);
【讨论】:
getTime() 在做算术运算符时应该被隐式调用:)
new Date(+new Date('11/06/2011 00:00:00 GMT')+1000*60*60*24) 由于夏令时,我永远无法让它跳过/减去一个小时(2011 年 11 月 6 日)是下一个夏令时。也尝试了 6 个月以确保)
setDate 则保持在午夜。现在,您要使用哪个取决于您在做什么,但是当我想到“添加一天”时,我通常会考虑“不影响一天中的时间”。
一些不会改变原始日期对象的有用函数:
function prevDate(date) {
let copy = new Date(date.valueOf());
return new Date(copy.setDate(copy.getDate() - 1));
}
function nextDate(date) {
let copy = new Date(date.valueOf());
return new Date(copy.setDate(copy.getDate() + 1));
}
【讨论】:
【讨论】: