2

获得一个时间对象

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日午夜以来的毫秒数。

setMonth(): 设置月份。
setDate(): 设置一个月的某一天。
setTime() :以毫秒设置 Date 对象。
setFullYear(year,mouth,day) : Date 对象中的年份(四位数字)

设置时间对象(调时间)

dateObject.setTime(millisec);  

millisec: 要设置的日期和时间据 GMT 时间 1970 年 1 月 1 日午夜之间的毫秒数 ;
参数millisec可以为负值,用于表示1970年以前的日期。此方法没有返回值;主要用于设置时间对象;

设置时间为 3天前 :

 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);

上面的方法也可以写成这样:

 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 回返回 上个月的最后一天 ;可以求得任意一个月有多少天

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...

格式化 时间对象

通常我们看到的时间格式并不是时间对象默认的格式(Mon Dec 25 2017 09:34:24 GMT+0800 (中国标准时间));
而是带中文 或者 横线分隔;因此我们需要写一个 Format 函数;直接看某大神的代码吧;

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

lidog
119 声望3 粉丝