美文网首页WEB前端程序开发
web前端: js处理时间

web前端: js处理时间

作者: 长肉肉呱 | 来源:发表于2018-11-01 20:02 被阅读1次

    原生JS

    • 关于Date基础用法
    var myDate = new Date();  
    myDate.getYear(); //获取当前年份(2位)  
    myDate.getFullYear(); //获取完整的年份(4位,1970-????)  
    myDate.getMonth(); //获取当前月份(0-11,0代表1月)         // 所以获取当前月份是myDate.getMonth()+1;   
    myDate.getDate(); //获取当前日(1-31)  
    myDate.getDay(); //获取当前星期X(0-6,0代表星期天)  
    myDate.getTime(); //获取当前时间(从1970.1.1开始的毫秒数)  
    myDate.getHours(); //获取当前小时数(0-23)  
    myDate.getMinutes(); //获取当前分钟数(0-59)  
    myDate.getSeconds(); //获取当前秒数(0-59)  
    myDate.getMilliseconds(); //获取当前毫秒数(0-999)  
    myDate.toLocaleDateString(); //获取当前日期  
    var mytime=myDate.toLocaleTimeString(); //获取当前时间  
    myDate.toLocaleString( ); //获取日期与时间  
    
    • 计算指定两个时间之间的时间差
    //计算时间差,输入为日期字符串
    function GetDateDiff(startDate, endDate) {
        var startTime = new Date(Date.parse(startDate.replace(/-/g, "/"))).getTime();
        var endTime = new Date(Date.parse(endDate.replace(/-/g, "/"))).getTime();
        //时间差的毫秒数
        var date3 = endTime - startTime;    
        //计算出相差天数  
        var days = Math.floor(date3 / (24 * 3600 * 1000))
        //计算出小时数  
        var leave1 = date3 % (24 * 3600 * 1000)
        //计算天数后剩余的毫秒数  
        var hours = Math.floor(leave1 / (3600 * 1000))
        //计算相差分钟数  
        var leave2 = leave1 % (3600 * 1000)
        //计算小时数后剩余的毫秒数  
        var minutes = Math.floor(leave2 / (60 * 1000))
        //计算相差秒数  
        var leave3 = leave2 % (60 * 1000)
        //计算分钟数后剩余的毫秒数  
        var seconds = Math.round(leave3 / 1000)
        var str = " 相差 " + days + "天 " + hours + "小时 " + minutes + "分钟 " + seconds + "秒";
        return str;
    }
    
    • 时间戳转换为 普通日期格式
    function formatDate(myTime) {
        // 比如需要这样的格式 yyyy-MM-dd hh:mm:ss
        var date = new Date(myTime);
        Y = date.getFullYear() + '-';
        M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
        D = date.getDate() + ' ';
        h = date.getHours() + ':';
        m = date.getMinutes() + ':';
        s = date.getSeconds();
        var str = (Y + M + D + h + m + s)
        return str;
    };
    
    • 时间格式字符串转为时间戳(毫秒)
    function dateToStamp(myTime) {
        var date = new Date(myTime.replace(/-/g, '/')); //开始时间  
        var res = date.getTime();
        return res;
    }
    
    • 显示当前时间
    function getCurDate() {
        var d = new Date();
        var week;
        switch (d.getDay()) {
            case 1:
                week = "星期一";
                break;
            case 2:
                week = "星期二";
                break;
            case 3:
                week = "星期三";
                break;
            case 4:
                week = "星期四";
                break;
            case 5:
                week = "星期五";
                break;
            case 6:
                week = "星期六";
                break;
            default:
                week = "星期天";
        }
        var years = d.getFullYear();
        var month = add_zero(d.getMonth() + 1);
        var days = add_zero(d.getDate());
        var hours = add_zero(d.getHours());
        var minutes = add_zero(d.getMinutes());
        var seconds = add_zero(d.getSeconds());
        var ndate = years + "年" + month + "月" + days + "日 " + hours + ":" + minutes + ":" + seconds + " " + week;
        console.log(ndate);
    }
    function add_zero(temp) {
        if (temp < 10) return "0" + temp;
        else return temp;
    }
    setInterval("getCurDate()", 1000);
    

    MomentJS库常用方法

    • 使用方法
    1. nodeJS
    npm install moment
    var moment = require('moment');
    moment().format();
    

    2.浏览器

    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
    <script>
        moment().format();
    </script>
    
    • 日期格式化
    moment().format('MMMM Do YYYY, h:mm:ss a'); // 九月 3日 2015, 3:45:43 下午
    moment().format('dddd');                    // 星期四
    moment().format("MMM Do YY");               // 9月 3日 15
    moment().format('YYYY [escaped] YYYY');     // 2015 escaped 2015
    moment().format(); 
    
    • 相对时间
    moment("20111031", "YYYYMMDD").fromNow(); // 4 年前
    moment("20120620", "YYYYMMDD").fromNow(); // 3 年前
    moment().startOf('day').fromNow();        // 16 小时前
    moment().endOf('day').fromNow();          // 8 小时内
    moment().startOf('hour').fromNow();       // 1 小时前
    
    • 日历时间
    moment().subtract(10, 'days').calendar(); // 2015年8月24日
    moment().subtract(6, 'days').calendar();  // 上周五下午3点45
    moment().subtract(3, 'days').calendar();  // 本周一下午3点45
    moment().subtract(1, 'days').calendar();  // 昨天下午3点45分
    moment().calendar();                      // 今天下午3点45分
    moment().add(1, 'days').calendar();       // 明天下午3点45分
    moment().add(3, 'days').calendar();       // 本周日下午3点45
    moment().add(10, 'days').calendar();      // 2015年9月13日
    
    • 时间段
    moment.duration(Number, String);
    moment.duration(Number);
    moment.duration(Object);
    moment.duration(String);
    
    moment.duration(100); // 100 milliseconds
    
    moment.duration(2, 'seconds');
    moment.duration(2, 'minutes');
    moment.duration(2, 'hours');
    moment.duration(2, 'days');
    moment.duration(2, 'weeks');
    moment.duration(2, 'months');
    moment.duration(2, 'years');
    
    • 时间比较
    ### [是否之前]
    moment().isBefore(Moment|String|Number|Date|Array);
    moment().isBefore(Moment|String|Number|Date|Array, String);
    ### [是否相同]
    moment().isSame(Moment|String|Number|Date|Array);
    moment().isSame(Moment|String|Number|Date|Array, String);
    ### [是否之后] 2.0.0+
    moment().isAfter(Moment|String|Number|Date|Array);
    moment().isAfter(Moment|String|Number|Date|Array, String);
    ### [是否之间]2.9.0+
    moment().isBetween(moment-like, moment-like);
    moment().isBetween(moment-like, moment-like, String);
    ### where moment-like is Moment|String|Number|Date|Array
    

    更多API:
    http://momentjs.cn/

    相关文章

      网友评论

        本文标题:web前端: js处理时间

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