在javascript中更改日期范围

时间:2015-02-20 14:42:34

标签: javascript

我正在尝试在日期选择器中设置开始日期和结束日期,其中开始日期是当前日期之前的一周,结束日期是开始日期之后的一周。在某些情况下,它给我0开始日期。任何人都可以查看下面的代码,并帮助我在当前日期是该月的第一天或该月的最后一个日期时获得正确的日期范围。谢谢你的帮助。

 var date = new Date();

//当前日期在某些情况下小于7时会给我错误。所以,我正在检查当前日期并随机减去3。     //如果当前日期小于7,则获取上个月的最后一天     if(date.getDate()< = 7){

    day = new Date(date.getFullYear(), date.getMonth(), 0);        
    startdate = day.getDate() - 3;
    month = day.getMonth() + 1;
    year = day.getFullYear();

    if (month < 10) month = "0" + month;
    if (day < 10) day = day;
    console.log("App Config: lasy day: " + startdate + "\nmonth: " + month + "\nyear:" + year);
}

else {

    startdate = date.getDate() - 7;
    month = date.getMonth() + 1;
    year = date.getFullYear();

    if (month < 10) month = "0" + month;
    if (day < 10) day = day;

    console.log("App Config: day: " + startdate + "\nmonth: " + month + "\nyear:" + year);
}

return month + "/" + startdate + "/" + year;

2 个答案:

答案 0 :(得分:1)

你试过这个:

var dt = new Date();
var weekBefore = dt.setDate(dt.getDate() - 7);
var weekAfter = dt.setDate(dt.getDate() + 7);

JavaScript会自动计算出7天之前和之后的日期!

答案 1 :(得分:0)

如果您对插件没问题,我会建议Moment.js这对于日期处理非常有用。添加一周就像

一样简单
var inOneWeek = moment().add(1, 'weeks');//.format('DD/MM/YYYY'); if u want it in DD/MM/YYYY format
var oneWeekAgo = moment().add(-1, 'weeks');//.format('DD/MM/YYYY');

否则@ sabotero的回答也会这样。