Date

作者: 好奇男孩 | 来源:发表于2018-05-13 02:20 被阅读6次

    Date

    • GMT:是指位于英国伦敦郊区的皇家格林尼治天文台当地的标准时间,因为本初子午线被定义为通过那里的经线
    • UTC:协调世界时(英语:Coordinated Universal Time,法语:Temps Universel Coordonné,简称UTC)是最主要的世界时间标准,其以原子时秒长为基础,在时刻上尽量接近于格林尼治标准时间。
    • CST:北京时间,又名中国标准时间,是中国大陆的标准时间,比世界协调时快八小时(即UTC+8),与香港、澳门、台北、吉隆坡、新加坡等地的标准时间相同。
    var d = new Date()
    console.log(d.toString())   //"Sun Mar 25 2018 21:37:06 GMT+0800 (中国标准时间)"
    console.log(d.toGMTString()) //"Sun, 25 Mar 2018 13:37:06 GMT"
    console.log(d.toUTCString())  //"Sun, 25 Mar 2018 13:37:06 GMT"
    console.log(d.toISOString())//"2018-03-25T13:37:06.061Z"
    

    方法

    get

      var d = new Date()
    
        d.getTime()         //返回实例对象距离1970年1月1日00:00:00对应的毫秒数
        d.getDate()         //返回实例对象对应每个月的几号(从1开始)
        d.getDay()          //返回星期,星期日为0,星期一为1,以此类推
        d.getFullYear()     //返回四位的年份
        d.getMonth()        //返回月份(0表示1月,11表示12月)
        d.getHours()        //返回小时(0~23)
        d.getMilliseconds() //返回毫秒(0-999)
        d.getMinutes()      //返回分钟(0-59)
        d.getSeconds()      //返回秒(0-59)
    

    set

    • Date.prototype.setDate(date):设置实例对象对应的每个月的几号(1-31),返回改变后毫秒时间戳

    • Date.prototype.setFullYear(year [, month, date]):设置四位年份

    • Date.prototype.setHours(hour [, min, sec, ms]):设置小时(0-23)

    • Date.prototype.setMilliseconds():设置毫秒(0-999)

    • Date.prototype.setMinutes(min [, sec, ms]):设置分钟(0-59)

    • Date.prototype.setMonth(month [, date]):设置月份(0-11)

    • Date.prototype.setSeconds(sec [, ms]):设置秒(0-59)

    • Date.prototype.setTime(milliseconds):设置毫秒时间戳

    Date.now()

    now方法返回当前距离1970年1月1日00:00:00的毫秒数

    Date.now(); // 1427974222853
    

    Date.parse()

    parse方法用来解析日期字符串,返回距离1970年1月1日 00:00:00的毫秒数
    日期字符串的格式应该完全或者部分符合YYYY-MM-DDTHH:mm:ss.sssZ格式,Z表示时区,是可选的
    如果解析失败,返回NaN

    Date.parse("January 26, 2011 13:51:50")
    Date.parse("Mon, 25 Dec 1995 13:30:00 GMT")
    Date.parse("Mon, 25 Dec 1995 13:30:00 +0430")
    Date.parse("2011-10-10")
    Date.parse("2011-10-10 20:00:00")
    Date.parse("2011-10-10T14:48:00")
    

    注意:在新建日期对象时,如果不设置时间,则认为创建的是 utc 的0点,也就是北京时间8点。 如果设置时间,则是北京时间当前时间。

    new Date('2018-01-01')  // Mon Jan 01 2018 08:00:00 GMT+0800 (CST)
    new Date('2018-01-01 00:00:00')  //Mon Jan 01 2018 00:00:00 GMT+0800 (CST)
    

    范例:

    写一个函数getChIntv,获取从当前时间到指定日期的间隔时间

       function getChIntv(str){
            var timeEnd = Date.parse(str);
            var timeStart = Date.now();
            var interval = Math.abs(timeEnd - timeStart);
            var totalsecond = Math.floor(interval/1000);
            var second = Math.floor(totalsecond%60);
            var minute = Math.floor(totalsecond/60)%60;
            var hour = Math.floor(totalsecond/3600)%24;
            var day = Math.floor(totalsecond/(3600*24));
            return '距这天有' + day + '天' + hour + '小时' + minute + '分' + second + '秒';
        }
        var str = getChIntv("1994-07-26");
        console.log(str); //距我的生日还有241天21小时27分56秒
    

    把hh-mm-dd格式数字日期改成中文日期

      function getChsDate(datestr){
            var arr = datestr.split("-");
            var dic = ["零","一","二","三","四","五","六","七","八","九","十","十一","十二","十三","十四","十五","十六","十七","十八","十九","二十","二十一","二十二","二十三","二十四","二十五","二十六","二十七","二十八","二十九","三十","三十一"]
            var year = " ";
            var month = " ";
            var day = " ";
            for(var i = 0; i < arr[0].length; i++){
                year+=dic[arr[0][i]];
            }
            month = dic[parseInt(arr[1])];
            day = dic[parseInt(arr[2])];
            return year + "年" +month +"月" + day +"日";
        }
        var str = getChsDate('2015-01-08');
        console.log(str);   // 二零一五年一月八日
    
     //写一个函数,
        // 参数为时间对象毫秒数的字符串格式,
        // 返回值为字符串。假设参数为时间对象毫秒数t,
        // 根据t的时间分别返回如下字符串
        //刚刚( t 距当前时间不到1分钟时间间隔)
    //    3分钟前 (t距当前时间大于等于1分钟,小于1小时)
    //    8小时前 (t 距离当前时间大于等于1小时,小于24小时)
    //    3天前 (t 距离当前时间大于等于24小时,小于30天)
    //    2个月前 (t 距离当前时间大于等于30天小于12个月)
    //    8年前 (t 距离当前时间大于等于12个月)
        function friendlyDate(time){
            var  now =Date.now();
            var interval=Math.abs(now-time);
            if(interval < 1000*60){
                return '刚刚';
            }else if( interval<1000*60*60){
                return "3分钟前";
            }else if(interval<1000*60*60*24){
                return "8小时前";
            }else if(interval<1000*60*60*24*30){
                return "3天前";
            }else if(interval<1000*60*60*24*30*12){
                return "2个月前";
            }else{
                return " 8年前";
            }
        }
        var str = friendlyDate( '10000001484286699422' );
         console.log(str); //  1分钟前
        var str2 = friendlyDate('10000001483941245793');
        console.log(str2); //4天前
    

    相关文章

      网友评论

        本文标题:Date

        本文链接:https://www.haomeiwen.com/subject/zlekdftx.html