Javascript在格式化日期前3天获取';2017-11-10';没有时间

Javascript在格式化日期前3天获取';2017-11-10';没有时间,javascript,Javascript,我有一个变量的值为2017-11-10,我希望在2017-11-10之前的3天内得到该变量,即2017-11-7 似乎只有当你有完整的时间戳时它才有效。但是,我从时间戳中删除了时间 let d = new Date(); d.setDate(d.getDate()-1); 有什么方法可以在没有时间的情况下做到这一点吗?您只需将日期字符串初始化为javascript日期,如下例所示 let d = new Date(2017, 10, 10); d.setDate(d.getDate()-3);

我有一个变量的值为
2017-11-10
,我希望在
2017-11-10
之前的3天内得到该变量,即
2017-11-7

似乎只有当你有完整的时间戳时它才有效。但是,我从时间戳中删除了时间

let d = new Date();
d.setDate(d.getDate()-1);

有什么方法可以在没有时间的情况下做到这一点吗?

您只需将日期字符串初始化为javascript日期,如下例所示

let d = new Date(2017, 10, 10);
d.setDate(d.getDate()-3);

以下是获取yyyy-m-d格式的日期字符串的几个选项:

var d=新日期(新日期(“2017-11-10”+“z”)-3*864e5)//指定祖鲁时区以避免转换为当地时间
console.log(d.toJSON().slice(0,10))/“2017-11-07”
console.log(d.toJSON().slice(0,10)。替换('-0','-')/“2017-11-7”

console.log(d.getUTCFullYear()+'-'+(d.getUTCMonth()+1)+'-'+d.getUTCDate())/“2017-11-7”
您将解析字符串以获得一个
Date
对象(以这种或那种方式),然后将日期设置为当前的负3,然后将
Date
格式化为一个没有时间的字符串。我认为您的问题是重复的。您还可以看到javascript中的日期格式。实际上,您使用的YYYY-MM-DD格式应该没有问题。@Ohsik如果任何日期不是
YYYY-MM-DD
格式,请参阅更新版本。