js日期格式化方法

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
       
        <script>
            
            
            //格式化时间 
            
            //参数一 字符串yyyy全年|yy两位年|mm两位月|m月|dd两位天|d天|hh两位时|h时|ii两位分|i分|ss两位秒|s秒|w星期大写(一二三四五六日)
            //参数二  Date对象或者time,不传默认为当天
            //formatDate("yyyy年m月d日hh:ii:ss 星期w") 返回2017年6月29日11:21:29 星期四
            function formatDate(formatStr,time){
                //
                var type=typeof time
                console.log(type)
                if(time==undefined){
                    var date=new Date();
                }else if(type=='number' || type=="string"){
                    if(isNaN(time)){
                        throw("传入的参数正确,应该是日期类型对象或者time或者time的字符串")
                        return
                    }else{
                        var date=new Date(parseInt(time))
                    }    
                }else if(type=="object" && time instanceof Date){
                    var date=time
                }else{
                    throw("传入的参数正确,应该是日期类型对象或者time或者time的字符串")
                    return
                }
                
                var tf=function(val){
                    return parseInt(val)<10 && val.toString().length==1 ? '0'+val : val
                }
                return formatStr.replace(/yyyy|yy|mm|m|dd|d|hh|h|ii|i|ss|s|w/g,function(a){
                    switch(a){
                        case 'yyyy'://2001
                            return date.getFullYear().toString();
                            break;
                        case 'yy'://01
                            return date.getFullYear().toString().substring(2);
                            break;
                        case 'mm'://06
                            return tf((date.getMonth()+1).toString());
                            break;
                        case 'm'://6
                            return (date.getMonth()+1).toString();
                            break;
                        case 'dd'://06
                            return tf(date.getDate().toString());
                            break;
                        case 'd'://6
                            return date.getDate().toString();
                            break;
                        case 'hh'://06
                            return tf(date.getHours().toString());
                            break;
                        case 'h'://6
                            return date.getHours().toString();
                            break;
                        case 'ii'://06
                            return tf(date.getMinutes().toString());
                            break;
                        case 'i'://6
                            return date.getMinutes().toString();
                            break;
                        case 'ss'://06
                            return tf(date.getSeconds().toString());
                            break;
                        case 's'://6
                            return date.getSeconds().toString();
                            break;
                        case 'w'://
                            switch(parseInt(date.getDay())){
                                case 0:
                                    return '';
                                    break;
                                case 1:
                                    return '';
                                    break;
                                case 2:
                                    return '';
                                    break;
                                case 3:
                                    return '';
                                    break;
                                case 4:
                                    return '';
                                    break;
                                case 5:
                                    return '';
                                    break;
                                case 6:
                                    return '';
                                    break;
                            }
                            break;
                    }    
                })    
            }
            </script>
    </body>
</html>

 别人的待研究

 1 //时间格式化
 2 Date.prototype.Format = function(fmt) { // author: meizz
 3     var o = {
 4         "M+" : this.getMonth() + 1, // 月份
 5         "d+" : this.getDate(), //
 6         "h+" : this.getHours(), // 小时
 7         "m+" : this.getMinutes(), //
 8         "s+" : this.getSeconds(), //
 9         "q+" : Math.floor((this.getMonth() + 3) / 3), // 季度
10         "S" : this.getMilliseconds()
11     // 毫秒
12     };
13     if (/(y+)/.test(fmt))
14         fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "")
15                 .substr(4 - RegExp.$1.length));
16     for ( var k in o)
17         if (new RegExp("(" + k + ")").test(fmt))
18             fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k])
19                     : (("00" + o[k]).substr(("" + o[k]).length)));
20     return fmt;
21 }

 

posted @ 2017-06-29 11:47  欲速不达  阅读(593)  评论(0编辑  收藏  举报