js獲取最近一周一個月三個月時間的簡單示例

獲取近一周時間

var end = new Date();
var year = end.getFullYear();
var month = end.getMonth() + 1;//0-11表示1-12月
var day = end.getDate();
var dateObj = {};
dateObj.end = year + '-' + month + '-' + day;
if (day - 7 <= 0) {   //如果在當月7日之前
    var startMonthDay = new Date(year, (parseInt(month) - 1), 0).getDate();    //1周前所在月的總天數
    if (month - 1 <= 0) { //如果在當年的1月份
      dateObj.start = (year - 1) + '-' + 12 + '-' + (31 - (7 - day));
    } else {
      dateObj.start = year + '-' + (month - 1) + '-' + (startMonthDay - (7 - day));
    }
} else {
    dateObj.start = year + '-' + month + '-' + (day - 7);
}
console.log(JSON.stringify(dateObj))
1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.

獲取近一個月時間

var end = new Date();
var year = end.getFullYear();
var month = end.getMonth() + 1;//0-11表示1-12月
var day = end.getDate();
var dateObj = {};
dateObj.end = year + '-' + month + '-' + day;
var endMonthDay = new Date(year, month, 0).getDate();    //當前月的總天數
if(month - 1 <= 0){ //如果是1月,年數往前推一年<br>    
    dateObj.start = (year - 1) + '-' + 12 + '-' + day;
}else{
    var startMonthDay = new Date(year, (parseInt(month) - 1), 0).getDate();
    if(startMonthDay < day){    //1個月前所在月的總天數小於現在的天日期
        if(day < endMonthDay){        //當前天日期小於當前月總天數
            dateObj.start = year + '-' + (month - 1) + '-' + (startMonthDay - (endMonthDay - day));
        }else{
            dateObj.start = year + '-' + (month - 1) + '-' + startMonthDay;
        }
    }else{
        dateObj.start = year + '-' + (month - 1) + '-' + day;
    }
}
console.log(JSON.stringify(dateObj))
1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.

獲取近三個月時間

var end = new Date();
var year = end.getFullYear();
var month = end.getMonth() + 1;//0-11表示1-12月
var day = end.getDate();
var dateObj = {};
dateObj.end = year + '-' + month + '-' + day;
var endMonthDay = new Date(year, month, 0).getDate();    //當前月的總天數
if(month - 3 <= 0){ //如果是1、2、3月,年數往前推一年
    var start3MonthDay = new Date((year - 1), (12 - (3 - parseInt(month))), 0).getDate();    //3個月前所在月的總天數
    if(start3MonthDay < day){    //3個月前所在月的總天數小於現在的天日期
        dateObj.start = (year - 1) + '-' + (12 - (3 - month)) + '-' + start3MonthDay;
    }else{
        dateObj.start = (year - 1) + '-' + (12 - (3 - month)) + '-' + day;
    }
}else{
    var start3MonthDay = new Date(year, (parseInt(month) - 3), 0).getDate();    //3個月前所在月的總天數
    if(start3MonthDay < day){    //3個月前所在月的總天數小於現在的天日期
        if(day < endMonthDay){        //當前天日期小於當前月總天數,2月份比較特殊的月份
            dateObj.start = year + '-' + (month - 3) + '-' + (start3MonthDay - (endMonthDay - day));
        }else{
            dateObj.start = year + '-' + (month - 3) + '-' + start3MonthDay;
        }
    }else{
        dateObj.start = year + '-' + (month - 3) + '-' + day;
    }
}
console.log(JSON.stringify(dateObj))

New Date()與setDate()參數

相信網上已經有很多關於日期的文章瞭,這裡隻是我自己再工作中遇到的問題然後加以總結;

new Date()

new Date() 一共有六種形式,五種帶參數的一種不帶參數的;

  1. new Date();自然不用多說,默認獲取的是當前日期。
  2. new Date(“month1 dd,yyyy hh:mm:ss”); 註意:參數是字符形式
  3. new Date(“month1 dd,yyyy”); 註意:參數是字符形式
  4. new Date(yyyy,month2,dd,hh,mm,ss); 註意:參數不是字符
  5. new Date(yyyy,month2,dd); 註意:參數不是字符
  6. new Date(ms); 

參數說明:

month1:用英文,表示月份名稱;從January到December ;

dd:表示日期,1-31

yyyy:表示四位表示的年份

hh:mm:ss:表示時間,時(0-23)-分(0-59)-秒(0-59)

month2:是Number型的月份;從0-11;即1月到12月

ms:從1970年1月1日之間相差的毫秒數

特別提醒:有些是字符形式有些不是

總結

到此這篇關於js獲取最近一周一個月三個月時間的文章就介紹到這瞭,更多相關js獲取一周一個月三個月時間內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: