js 時間對象的常規操做

得到一個時間對象

var date = new Date();
//Date() 方法若是接受到一個時間戳做爲參數,返回該時間戳的對象,不然返回當前時間

得到時間對象的時間戳

var timeStr = parseInt(Date.parse(new Date())); 
或者 
var timeStr = (new Date()).getTime();

經過時間戳 得到 時間對象

var date = new Date(timeStr);

一天的時間戳爲:

60分 x 60秒 x 24小時 x 1000毫秒 = 86400 x 1000;函數

時間對象的一些經常使用方法

getDate() 得到當日的日期
getDay() 得到星期幾
getHours():返回時間的小時部分。
getMinutes():返回時間的分鐘部分。
getSeconds():返回時間的秒部分。
getMilliseconds():返回時間的毫秒部分。
getTime():返回自從1970年1月1日午夜以來的毫秒數。 this

setMonth(): 設置月份。
setDate(): 設置一個月的某一天。
setTime() :以毫秒設置 Date 對象。
setFullYear(year,mouth,day) : Date 對象中的年份(四位數字)spa

設置時間對象(調時間)

dateObject.setTime(millisec);

millisec: 要設置的日期和時間據 GMT 時間 1970 年 1 月 1 日午夜之間的毫秒數 ;
參數millisec能夠爲負值,用於表示1970年之前的日期。此方法沒有返回值;主要用於設置時間對象;prototype

設置時間爲 3天前 :code

function getDate(int) {
     var date = new Date();
     var timeStr = parseInt(Date.parse(date)) +  86400 * 1000 * int;
     date.setTime(timeStr);//設置時間對象;
     return date;
    //注意寫成 return  date.setTime(timeStr) 是錯的;會返回 timeStr;
}
var date = getDate(-3);

上面的方法也能夠寫成這樣:orm

function getDate(int) {
        var date = new Date();
        var timeStr = parseInt(Date.parse(date)) +  86400 * 1000 * int;
        return new Date(timeStr) // Date() 接受一個時間戳參數,返回設置時間後的時間對象;
    }
 var date = getDate(-3);

還能夠寫成這樣(推薦):對象

function getDate(int) {
         var date = new Date();
         date.setDate(date.getDate()+int)
         return date
    }
var date = getDate(-3);

//注意:若是增長5天后進入另一個月或一年,Date對象會自動處理的。

setFullYear 求 某個月有多少天

clipboard.png

經過利用 setFullYear 中 若是day 設置爲 0 回返回 上個月的最後一天 ;能夠求得任意一個月有多少天ip

function getDaysNum(year,mouth) {
    var date = new Date();
    date.setFullYear(year,mouth,0);
    var days = date.getDate();
    return days;
}
getDaysNum(2017,2) //28

參考連接 http://www.w3school.com.cn/js...get

格式化 時間對象

一般咱們看到的時間格式並非時間對象默認的格式(Mon Dec 25 2017 09:34:24 GMT+0800 (中國標準時間));
而是帶中文 或者 橫線分隔;所以咱們須要寫一個 Format 函數;直接看某大神的代碼吧;it

Date.prototype.Format = function (fmt) { //author: meizz 
    var o = {
        "M+": this.getMonth() + 1, //月份 
        "d+": this.getDate(), //日 
        "h+": this.getHours(), //小時 
        "m+": this.getMinutes(), //分 
        "s+": this.getSeconds(), //秒 
        "q+": Math.floor((this.getMonth() + 3) / 3), //季度 
        "S": this.getMilliseconds() //毫秒 
    };
    if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    //在循環中,經過正則匹配格式,而後替換內容
    for (var k in o) 
    if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
    return fmt;
}


調用: 
var time1 = new Date().Format("yyyy-MM-dd"); //2017-12-26
var time2 = new Date().Format("yyyy-MM-dd HH:mm:ss");  //2017-12-26 09:33:30
相關文章
相關標籤/搜索