有没有一种简单的方法来获取olain JavaScript日期(例如今天)并返回X天?

例如,如果我想计算今天前5天的日期。


当前回答

var my date = new Date().toISOString().substring(0, 10);

它只能给你2014-06-20这样的日期。希望会有所帮助

其他回答

设置日期时,日期转换为毫秒,因此需要将其转换回日期:

这种方法还考虑了新年变化等因素。

function addDays( date, days ) {
    var dateInMs = date.setDate(date.getDate() - days);
    return new Date(dateInMs);
}

var date_from = new Date();
var date_to = addDays( new Date(), parseInt(days) );

将日期拆分为多个部分,然后返回一个具有调整值的新日期

function DateAdd(date, type, amount){
    var y = date.getFullYear(),
        m = date.getMonth(),
        d = date.getDate();
    if(type === 'y'){
        y += amount;
    };
    if(type === 'm'){
        m += amount;
    };
    if(type === 'd'){
        d += amount;
    };
    return new Date(y, m, d);
}

记住,月份是以零为基础的,但日子不是。即新日期(2009,1,1)==2009年2月1日,新日期(2009,1,0)==2009年1月31日;

get moment.js。所有酷孩子都使用它。它有更多的格式选项等。在哪里

var n = 5;
var dateMnsFive = moment(<your date>).subtract(n , 'day');

可选择的转换为JS Date obj以进行角度绑定。

var date = new Date(dateMnsFive.toISOString());

可选择的总体安排

var date = dateMnsFive.format("YYYY-MM-DD");

一些人建议在js中处理日期时,使用moment.js让您的生活更轻松。这些答案已经过去了,值得注意的是,moment.js的作者现在不鼓励使用它。主要是因为它的大小和缺乏树木摇晃支撑。

如果你想走图书馆路线,可以选择像卢克逊这样的其他路线。它比moment.js小得多(因为它巧妙地使用了Intl对象并支持树抖动),而且功能也和moment.js一样多。

要从今天起5天回到卢克逊,您需要:

import { DateTime } from 'luxon'

DateTime.now().minus({ days: 5 });

尝试以下操作:

 var d = new Date();
 d.setDate(d.getDate()-5);

注意,这将修改日期对象并返回更新日期的时间值。

var d=新日期();document.write('今天是:'+d.toLocaleString());d.setDate(d.getDate()-5);document.write('<br>5天前是:'+d.toLocaleString());