我正试图形成一个日期,这是3个月前的当前日期。我通过下面的代码得到当前月份
var currentDate = new Date();
var currentMonth = currentDate.getMonth()+1;
你能给我提供一个逻辑来计算和形成一个日期(date数据类型的对象),考虑到当月份是一月(1)时,日期前3个月将是十月(10)吗?
我正试图形成一个日期,这是3个月前的当前日期。我通过下面的代码得到当前月份
var currentDate = new Date();
var currentMonth = currentDate.getMonth()+1;
你能给我提供一个逻辑来计算和形成一个日期(date数据类型的对象),考虑到当月份是一月(1)时,日期前3个月将是十月(10)吗?
当前回答
这是最小和最简单的代码。
var minDate = new Date();
minDate.setMonth(minDate.getMonth() - 3);
声明具有当前日期的变量。 然后通过使用setMonth内置函数,我们可以得到3个月后的日期。
其他回答
为了让事情变得简单,你可以使用DateJS,一个JavaScript的日期库:
http://www.datejs.com/
示例代码:
Date.today().add({ months: -1 });
直接放入变量中的“一行代码”(多行代码,便于阅读):
var oneMonthAgo = new Date(
new Date().getFullYear(),
new Date().getMonth() - 1,
new Date().getDate()
);
我建议使用一个名为Moment.js的库。
它经过了良好的测试,可以跨浏览器和服务器端工作(我在Angular和Node项目中都使用它)。它对区域日期有很好的支持。
http://momentjs.com/
var threeMonthsAgo = moment().subtract(3, 'months');
console.log(threeMonthsAgo.format()); // 2015-10-13T09:37:35+02:00
.format()返回ISO 8601格式的日期字符串表示形式。你也可以像这样使用自定义日期格式:format('dddd, MMMM Do YYYY, h:mm:ss a')
for (let monthOfYear = 0;monthOfYear < 12;monthOfYear + +) { const maxDate = new Date(); const minDate = new Date(); const max = maxDate.setMonth(maxDate.getMonth() - (monthOfYear - 1), 0); const min = maxDate.setMonth(minDate.getMonth() - (monthOfYear), 1); console.log('max: ',新的日期(max)); console.log('min: ', new Date(min)); }
var todayDate =新日期。slice (0) (10); var d =新日期(todayDate); d . setMonth (d . getMonth () - 3); 游戏机。log (todayDate) log (d . toISOString(游戏机)。slice (0) (10));