时间戳、时间对象统统转化为想要的时间格式,异常强大

/**
* @author chenpengpeng
* @description 通用timeFormat(day, format),其中time表示时间对象或者时间戳,format表示时间具体的格式
* 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符,
* 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
* 例子:
* (Format(time, "yyyy-MM-dd hh:mm:ss.S") ==> 2016-07-02 08:09:04.423
* (Format(time, "yyyy-M-d h:m:s.S") ==> 2016-7-2 8:9:4.18
* @date 2016-11-02
*/

        function timeFormat(time, format){
            var dateO;
            if(typeof time == 'number' && time.toString().length == 13){
                dateO = new Date(time);
            }else if(time instanceof Date){
                dateO = time;
            }else{
                return;
            }

           var date = {
                "M+": dateO.getMonth() + 1,
                "d+": dateO.getDate(),
                "h+": dateO.getHours(),
                "m+": dateO.getMinutes(),
                "s+": dateO.getSeconds(),
                "q+": Math.floor((dateO.getMonth() + 3) / 3),
                "S+": dateO.getMilliseconds()
            };
            var month = date["M+"] < 10 ? '0'+ date["M+"] : date["M+"];
            var day = date["d+"] < 10 ? '0'+ date["d+"] : date["d+"];

            if(format === 'yyyyMMdd-China'){
                return ''+ dateO.getFullYear()+ '年'+ month+ '月'+ day +'日';
            }
            if(format === 'MMdd-China'){
                return ''+ month+ '月'+ day +'日';
            }
            if (/(y+)/i.test(format)) {
                format = format.replace(RegExp.$1, (dateO.getFullYear() + '').substr(4 - RegExp.$1.length));
            }
            for (var k in date) {
                if (new RegExp("(" + k + ")").test(format)) {
                    format = format.replace(RegExp.$1, RegExp.$1.length == 1
                        ? date[k] : ("00" + date[k]).substr(("" + date[k]).length));
                }
            }
            return format;
        }

  

posted @ 2016-11-02 20:09  陈小鹏  阅读(190)  评论(0编辑  收藏  举报