JavaScript日期格式化函数
该日期格式化函数是为了达到像Java提供的SimpleDateFormat类一样的功能,对Date的扩展,将 Date 转化为指定格式的string类型变量
- 年(y)
- 月(M)
- 日(d)
- 24小时(H)
- 12小时(h)
- 分(m)
- 秒(s)
- 周(E)
- 季度(q)
- 毫秒(S)
目录
代码
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));
}
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;
};
用法
- 月(M)、日(d)、12小时(h)、24小时(H)、分(m)、秒(s)、周(E)、季度(q) 可以用 1-2 个占位符
- 年(y)可以用 1-4 个占位符
- 毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
demo
(new Date()).format(“yyyy-MM-dd hh:mm:ss.S”) ==> 2015-09-11 08:09:04.423
(new Date()).format(“yyyy-MM-dd E HH:mm:ss”) ==> 2015-09-11 五 08:09:04
(new Date()).format(“yyyy-MM-dd EE hh:mm:ss”) ==> 2015-09-11 周五 08:09:04
(new Date()).format(“yyyy-MM-dd EEE hh:mm:ss”) ==> 2015-09-11 星期五 08:09:04
(new Date()).format(“yyyy-M-d h:m:s.S”) ==> 2015-09-11 8:9:4.18