js 日期格式化

 

js 日期格式化

CreationTime--2018年8月29日14点40分

Author:Marydon

1.代码实现

/**
 * 对Date类型进行格式化(转化为指定格式的String)
 * @explain 年(y)可以用 1-4 个占位符
 * 月(M)、日(d)、12小时(h)、24小时(H)、分(m)、秒(s)、季度(q) 都可以用 1-2 个占位符
 * 周(E)可以用 1-3 个占位符    
 * 毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
 * @param fmt 格式
 * 常用格式介绍:
 * yyyy年MM月dd日 2018年08月29日
 * yyyy-MM-dd HH:mm:ss 2018-08-29 14:17:15
 * yyyy-MM-dd hh:mm:ss S 2018-08-29 14:17:15 10
 * yyyy-MM-dd EE HH:mm:ss 2018-08-29 周三 14:17:15
 * yyyy-MM-dd EEE HH:mm:ss 2018-08-29 星期三
 */
Date.prototype.format = function(fmt) {
	var o = {
		"M+" : this.getMonth() + 1, // 月份
		"d+" : this.getDate(), // 日
		"h+" : this.getHours() % 12 == 0 ? 12 : this.getHours() % 12, // 小时
		"H+" : this.getHours(), // 小时
		"m+" : this.getMinutes(), // 分
		"s+" : this.getSeconds(), // 秒
		"q+" : Math.floor((this.getMonth() + 3) / 3), // 季度
		"S" : this.getMilliseconds() // 毫秒
	};
	var week = {
		"0" : "\u65e5", // 日
		"1" : "\u4e00", // 一
		"2" : "\u4e8c", // 二
		"3" : "\u4e09", // 三
		"4" : "\u56db", // 四
		"5" : "\u4e94", // 五
		"6" : "\u516d" // 六
	};
    // 年
	if (/(y+)/.test(fmt)) {
		fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
	};
    // \u661f\u671f-星期;\u5468-周
	if (/(E+)/.test(fmt)) {
		fmt = fmt.replace(RegExp.$1, ((RegExp.$1.length > 1) ? (RegExp.$1.length > 2 ? "\u661f\u671f" : "\u5468") : "") + week[this.getDay() + ""]);
	}
	for ( var k in o) {
		if (new RegExp("(" + k + ")").test(fmt)) {
			fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
		}
	}
	return fmt;
};

2.测试

window.onload = function(){
    document.write(new Date().format('yyyy年MM月dd日') + "<br/>");
    document.write(new Date().format('yyyy-MM-01') + "<br/>");
    document.write(new Date().format('yyyy-MM-dd HH:mm:ss') + "<br/>");
    document.write(new Date().format('yyyy-MM-dd HH:mm:ss S') + "<br/>");
    document.write(new Date().format('yyyy-MM-dd EE HH:mm:ss') + "<br/>");
    document.write(new Date().format('yyyy-MM-dd EEE HH:mm:ss') + "<br/>");
    document.write(new Date().format('yyyy-MM-dd 第qq季度 HH:mm:ss') + "<br/>");
}

3.结果展示

 

 

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值