Date时间对象

2019-02-19  本文已影响0人  学的会的前端

Date对象是JavaScript提供的日期和时间的操作接口。

JavaScript的时间是由世界标准时间(UTC)1970年1月1日开始,用毫秒计时,一天由86,400,000毫秒组成。Date对象的范围是-100,000,000天至100,000,000天(等效的毫秒值)。

关于Date,一般使用的是moment.js库。

Date的静态方法

Date()的动态方法

  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)
TIM图片20190219102743.png
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):设置毫秒时间戳
var d = new Date()
console.log(d.toString())
TIM图片20190219103125.png

实例:

    function getChIntv(datestr){
        var targetDate = new Date(datestr)//得到了目标时间的时间对象
        var curDate = new Date()//得到了当前时间的时间对象
        var offset = Math.abs(targetDate - curDate)//防止得到的结果为一个负值
        var totalSeconds = Math.floor(offset/1000)
        var second = totalSeconds%60
        var totalMinutes = Math.floor((offset/1000)/60)
        var minutes = totalMinutes%60
        var totalHours = Math.floor(totalMinutes/60)
        var hours = totalHours%24
        var totalDays = Math.floor(totalHours/24)
        return totalDays + '天' + hours + '小时' + minutes + '分钟' + second + '秒'
    }
判断二月是否有29号,有就是闰年,无就不是。
    function xx(){
        new d = new Date(year,1,29)
        return d.getDate() === 29

    }
    function getChsDate(date){
        var result = [];
        var str = ['零','一','二','三','四','五','六','七','八','九','十','十一','十二','十三','十四','十五','十六','十七','十八','十九','二十','二一','二二','二三','二四','二五','二六','二七','二八','二九','三十','三一'];
        var arr = date.splite('-');
        var yrar = arr[0];
            month = arr[1];
            day = arr[2];
        year = year.splite('').map(function (value){
            return strs[+value];
        }).join('');
        month = strs[+month];
        day = strs[+day];
        return year + '年' + month + '月' + day + '日';

    }

刚刚( t 距当前时间不到1分钟时间间隔)
3分钟前 (t距当前时间大于等于1分钟,小于1小时)
8小时前 (t 距离当前时间大于等于1小时,小于24小时)
3天前 (t 距离当前时间大于等于24小时,小于30天)
2个月前 (t 距离当前时间大于等于30天小于12个月)
8年前 (t 距离当前时间大于等于12个月)

    function friendlyDate(date){
        var offset = +new Date - time;
        var seconds = 1000,
            minutes = seconds * 60,
            hours = minutes * 60,
            days = hours * 24,
            months = days * 30,
            years = months * 12;
        var t;
        if(offset >= years){
            t = parseInt(offset / years);
            return t + '年前';
        }
        else if(offset >= months){
            t = parseInt(offset / months);
            return t + '个月前';
        }
        else if(offset >= days){
            t = parseInt(offset / days);
            return t + '天前';
        }
        else if(offset >= hours){
            t = parseInt(offset / hours);
            return t + '小时前';
        }
        else if(offset >= minutes){
            t = parseInt(offset / minutes);
            return t + '分钟前';
        }
        else(offset >= seconds){
            return '刚刚';
        }
    }

参考文献

MDN Date的使用方法

上一篇下一篇

猜你喜欢

热点阅读