老外写的一个javascript下Date格式化函数

Date.prototype.format = function(mask) {

	var d = this;

	var zeroize = function (value, length) {

		if (!length) length = 2;

		value = String(value);

		for (var i = 0, zeros = ''; i < (length - value.length); i++) {

			zeros += '0';

		}

		return zeros + value;

	};	

	return mask.replace(/"[^"]*"|'[^']*'|/b(?:d{1,4}|m{1,4}|yy(?:yy)?|([hHMstT])/1?|[lLZ])/b/g, function($0) {

		switch($0) {

			case 'd':	return d.getDate();

			case 'dd':	return zeroize(d.getDate());

			case 'ddd':	return ['Sun','Mon','Tue','Wed','Thr','Fri','Sat'][d.getDay()];

			case 'dddd':	return ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'][d.getDay()];

			case 'M':	return d.getMonth() + 1;

			case 'MM':	return zeroize(d.getMonth() + 1);

			case 'MMM':	return ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'][d.getMonth()];

			case 'MMMM':	return ['January','February','March','April','May','June','July','August','September','October','November','December'][d.getMonth()];

			case 'yy':	return String(d.getFullYear()).substr(2);

			case 'yyyy':	return d.getFullYear();

			case 'h':	return d.getHours() % 12 || 12;

			case 'hh':	return zeroize(d.getHours() % 12 || 12);

			case 'H':	return d.getHours();

			case 'HH':	return zeroize(d.getHours());

			case 'm':	return d.getMinutes();

			case 'mm':	return zeroize(d.getMinutes());

			case 's':	return d.getSeconds();

			case 'ss':	return zeroize(d.getSeconds());

			case 'l':	return zeroize(d.getMilliseconds(), 3);

			case 'L':	var m = d.getMilliseconds();

					if (m > 99) m = Math.round(m / 10);

					return zeroize(m);

			case 'tt':	return d.getHours() < 12 ? 'am' : 'pm';

			case 'TT':	return d.getHours() < 12 ? 'AM' : 'PM';

			case 'Z':	return d.toUTCString().match(/[A-Z]+$/);

			// Return quoted strings with the surrounding quotes removed

			default:	return $0.substr(1, $0.length - 2);

		}

	});

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值