JavaScript 获取 30 天前的日期

Bru*_*uno 3 javascript jquery datetime date

我正在尝试填充两个日期输入字段,一个包含今天的日期,另一个包含 30 天前(上个月)的日期。

我的控制台出现错误:priordate.getDate is not a function

这是我的代码,不确定我做错了什么:

//today's date

var today = new Date();
var dd = today.getDate();
var mm = today.getMonth()+1;//January is 0, so always add + 1
var yyyy = today.getFullYear();
if(dd<10){dd='0'+dd};
if(mm<10){mm='0'+mm};
today = yyyy+'-'+mm+'-'+dd;

//30 days ago

var beforedate = new Date();
var priordate = new Date().setDate(beforedate.getDate()-30);
var dd2 = priordate.getDate();
var mm2 = priordate.getMonth()+1;//January is 0, so always add + 1
var yyyy2 = priordate.getFullYear();
if(dd2<10){dd2='0'+dd2};
if(mm2<10){mm2='0'+mm2};
var datefrommonthago = yyyy2+'-'+mm2+'-'+dd2;

// Set inputs with the date variables:

$("#fromdate").val(datefrommonthago);
$("#todate").val(today);
Run Code Online (Sandbox Code Playgroud)

Nic*_*ick 6

你会想使用:

var priordate = new Date(new Date().setDate(beforedate.getDate()-30));
Run Code Online (Sandbox Code Playgroud)

如果你想把它写在一行上。通过使用:

new Date().setDate(beforedate.getDate()-30);
Run Code Online (Sandbox Code Playgroud)

您正在返回自纪元以来的时间(一个数字,而不是日期)并将其分配给priordate,但它不再是 a Date,因此没有该getDate功能。