前端笔记

Date

2018-05-13  本文已影响6人  好奇男孩

Date

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.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天前
上一篇 下一篇

猜你喜欢

热点阅读