js 时间函数封装

html代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <script src="date_tool.js"></script>
    <script>
        var d = new Date();
        var date_str = '2016-12-18 16:58:58';
        //返回时间戳 不需毫秒数
        document.write(dateTool.getTimeStampS(d)+"<br>");
        //返回时间戳包括毫秒数
        document.write(dateTool.getTimeStampMs(d)+"<br>");
        //返回时间格式化过的时间
        document.write(dateTool.getTime(d)+"<br>");
        //返回时间格式化过的日期
        document.write(dateTool.getDay(d)+"<br>");
        //返回在在某个时间点上加n秒 的时间
        document.write(dateTool.addSec('time',300,d)+"<br>");
        //返回在在某个时间点上加n秒 的日期
        document.write(dateTool.addSec('day',300,d)+"<br>");
        //返回年份
        document.write(dateTool.getSingle('s_year',d)+"<br>");
        //返回月份
        document.write(dateTool.getSingle('s_month',d)+"<br>");
        //返回日
        document.write(dateTool.getSingle('s_day',d)+"<br>");
        //返回小时
        document.write(dateTool.getSingle('s_hour',d)+"<br>");
        //返回分
        document.write(dateTool.getSingle('s_min',d)+"<br>");
        //返回秒
        document.write(dateTool.getSingle('s_second',d)+"<br>");
        //字符串转日期对象
        document.write(dateTool.strToDate(date_str)+"<br>");
    </script>
</body>
</html>

js代码

 ;(function(){
    var s_year,s_month,s_day,s_hour,s_min,s_second;
    var dateTool = {
        getTime:function(d){
            this._init(d);
            return s_year+'-'+s_month+'-'+s_day+' '+s_hour+':'+s_min+':'+s_second;
        },
        getDay:function(d){
            this._init(d);
            return s_year+'-'+s_month+'-'+s_day;
        },
        getTimeStampS:function(d){
            return Date.parse(d)/1000;
        },
        getTimeStampMs:function(d){
            return d.getTime();
        },
        getSingle:function(type,d){
            this._init(d);
            var rs = '';
            switch(type){
                case 's_year':
                    rs = s_year;
                    break;
                case 's_month':
                    rs = s_month;
                    break;
                case 's_day':
                    rs = s_day;
                    break;
                case 's_hour':
                    rs = s_hour;
                    break;
                case 's_min':
                    rs = s_min;
                    break;
                case 's_second':
                    rs = s_second;
                    break;
            }
            return rs;
        },
        addSec:function(type,sec,d){
            var tsms = this.getTimeStampMs(d);
            var tmp_sec = tsms+parseInt(sec)*1000;
            var _d = new Date(tmp_sec);
            var rs = '';
            if(type=='time'){
                rs = this.getTime(_d);
            }else{
                rs = this.getDay(_d);
            }
            return rs;
        },
        //初始化
        _init:function(d){
            var rs = '';
            s_year = ''+d.getFullYear();
            s_month = this.fillTime(d.getMonth() + 1);
            s_day = this.fillTime(d.getDate());
            s_hour = this.fillTime(d.getHours());
            s_min = this.fillTime(d.getMinutes());
            s_second = this.fillTime(d.getSeconds());
        },
        fillTime:function(num){
            num = num<10?('0'+num):(''+num);
            return num;
        },
        //字符串 转 日期对象 如 2016-10-21 16:58:00
        strToDate:function(str){
            var a = str.split(" ");
            var b = a[0].split("-"); 
            var c = a[1].split(":"); 
            var yyyy = b[0];
            var mth = parseInt(b[1])-1;
            var dd = b[2];
            var hh = c[0];
            var mm = c[1];
            var ss = c[2];
            // new Date(yyyy,mth,dd,hh,mm,ss); 
            // yyyy:四位数表示的年份
            // mth:用整数表示月份,从0-11(1月到12月)
            // dd:表示一个月中的第几天,从1到31
            // hh:小时数,从0(午夜)到23(晚11点)
            // mm:分钟数,从0到59的整数
            // ss:秒数,从0到59的整数
            // ms:毫秒数,为大于等于0的整数
            var date = new Date(yyyy,mth,dd,hh,mm,ss);
            return date; 
        }
    };
    window.dateTool = dateTool;
 })();
原文地址:https://www.cnblogs.com/lzs-888/p/6140868.html