Javascript getDate返回错误的值

Javascript getDate返回错误的值,javascript,typescript,Javascript,Typescript,我试图将日期设置为4天(从:今天-2到:今天+2)。 今天,31日。八月我在我的代码中发现了这个bug,上面写着无效日期。 我这样更改日期,如果我console.log()it,它会显示-1 任何帮助都将不胜感激 date: Date = new Date(); defaultDay: string = ("0" + (this.date.getDate() - 2)).slice(-2) 附言:我查看了moment.JS库,但目前我没有太多时间将整个项目改成它。你正在做基本的算术。从1中减去

我试图将日期设置为4天(从:今天-2到:今天+2)。 今天,31日。八月我在我的代码中发现了这个bug,上面写着
无效日期
。 我这样更改日期,如果我
console.log()
it,它会显示
-1

任何帮助都将不胜感激

date: Date = new Date();
defaultDay: string = ("0" + (this.date.getDate() - 2)).slice(-2)

附言:我查看了moment.JS库,但目前我没有太多时间将整个项目改成它。

你正在做基本的算术。从1中减去2将得到-1。您可以尝试先设置日期,然后从date对象获取日期

原因是设置参数不在范围内(小于或等于0)的相对日期

let start=new Date();
让结束=新日期();
start.setDate(start.getDate()-2);
end.setDate(end.getDate()+2);

log(start.getDate(),end.getDate())您正在做基本的算术。从1中减去2将得到-1。您可以尝试先设置日期,然后从date对象获取日期

原因是设置参数不在范围内(小于或等于0)的相对日期

let start=new Date();
让结束=新日期();
start.setDate(start.getDate()-2);
end.setDate(end.getDate()+2);

log(start.getDate(),end.getDate())你可以按照@31piy建议的方式来做。但是如果你使用它,处理日期就容易多了

你可以像我一样轻松地做这件事

const today = moment()
const two_days_after_today = moment().add(2, 'day')
const two_days_before_today = moment().subtract(2, 'day')

你可以按照@31piy建议的方式来做。但是如果你使用它,处理日期就容易多了

你可以像我一样轻松地做这件事

const today = moment()
const two_days_after_today = moment().add(2, 'day')
const two_days_before_today = moment().subtract(2, 'day')

您可以使用日期api来避免问题。 这里有一个例子

let date=新日期();
date.setDate(date.getDate()-2);

log(((“0”+date.getDate()).slice(-2))您可以使用日期api来避免问题。 这里有一个例子

let date=新日期();
date.setDate(date.getDate()-2);

log(((“0”+date.getDate()).slice(-2))这应该给你一个想法这应该给你一个想法是的,我遇到了这个解决方案。但我想知道是否可以在不设置两次新日期的情况下执行此操作?@HC1122--不确定为什么不设置日期?有限制吗?这似乎是一个正确的方法,适用于所有场景。设置日期不是问题,我只是想知道是否可以不初始化两个日期(开始和结束,所以只有一个)。@HC1122--不确定在普通JS中是否太容易。好吧,我将使用该解决方案。谢谢你们的帮助,我将在5分钟内接受答案。是的,我遇到了那个解决方案。但我想知道是否可以在不设置两次新日期的情况下执行此操作?@HC1122--不确定为什么不设置日期?有限制吗?这似乎是一个正确的方法,适用于所有场景。设置日期不是问题,我只是想知道是否可以不初始化两个日期(开始和结束,所以只有一个)。@HC1122--不确定在普通JS中是否太容易。好吧,我将使用该解决方案。谢谢你的帮助,我会在5分钟内接受答案。就像我说的,我知道,但现在不是使用它的正确时间。就像我说的,我知道,但现在不是使用它的正确时间。