JS实现SimpleDateFormat类

1、类定义


/**
 * 时间格式化
 */
function SimpleDateFormat(pattern){
	var fmt = new Object();
	fmt.pattern = pattern;
	
	fmt.parse = function(source){
		try{
			return new Date(source);
		}catch(e){
			console.log("字符串 "+source+" 转时间格式失败!");
			return null;
		}
	};
	
	fmt.format = function(date){
		if(typeof(date) == "undefined" || date == null || date==""){
			return "";
		}
		
		try{
			date = new Date(date);
		}catch(e){
			console.log("时间 "+date+" 格式化失败!");
			return "";
		}
		
		var strTime = this.pattern;//时间表达式的正则
		
	    var o = {
	            "M+": date.getMonth() + 1, //月份 
	            "d+": date.getDate(), //日 
	            "H+": date.getHours(), //小时 
	            "m+": date.getMinutes(), //分 
	            "s+": date.getSeconds(), //秒 
	            "q+": Math.floor((date.getMonth() + 3) / 3), //季度 
	            "S": date.getMilliseconds() //毫秒 
	        };
	    
	        if (/(y+)/.test(strTime)){
	        	strTime = strTime
	        		.replace(RegExp.$1, (date.getFullYear() + "")
	        		.substr(4 - RegExp.$1.length));
	        } 
	        for (var k in o){
	        	if (new RegExp("(" + k + ")").test(strTime)){
	        		strTime = strTime.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));	
	        	}
	        }
	        
	        return strTime;
	};
	return fmt;
}


2、使用

var fmt = SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
var aTime = fmt.parse("2020-12-31 23:59:59");//Date 类型
var strTime = fmt.format(aTime);//String 类型



  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值