JSは時間のフォーマットを実現します.

13187 ワード

JS時間フォーマット関数
入力されたフォーマット文字列に従って、イベントを指定されたフォーマットの時間文字列にフォーマットします.
/**
 *        ,                  
 * 
 * @param {Date} time         
 * @param {String} fmStr        
 * 		yyyy:        
 * 		  yy:         
 * 		  mm:     (  10  0)
 * 		  dd:     (  10  0)
 * 		  hh:     (  10  0)
 * 		  hh:     (  10  0)
 * 		  MM:     (  10  0)
 * 		  ss:     (  10  0)
 * 		 SSS:      
 * 		   w:     (  ) 
 * 		   W:     (  ) 
 * 		  ww:     (  ) 
 * @returns {String}         
 */
function timeFormat(time, fmStr) {
	const weekCN = '       ';
	const weekEN = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];

	let year = time.getFullYear();
	let month = time.getMonth() + 1;
	let day = time.getDate();
	let hours = time.getHours();
	let minutes = time.getMinutes();
	let seconds = time.getSeconds();
	let milliSeconds = time.getMilliseconds();
	let week = time.getDay();

	month = month >= 10 ? month : ('0' + month);
	day = day >= 10 ? day : ('0' + day);
	hours = hours >= 10 ? hours : ('0' + hours);
	minutes = minutes >= 10 ? minutes : ('0' + minutes);
	seconds = seconds >= 10 ? seconds : ('0' + seconds);

	if (fmStr.indexOf('yyyy') !== -1) {
		fmStr = fmStr.replace('yyyy', year);
	} else {
		fmStr = fmStr.replace('yy', (year + '').slice(2));
	}
	fmStr = fmStr.replace('mm', month);
	fmStr = fmStr.replace('dd', day);
	fmStr = fmStr.replace('hh', hours);
	fmStr = fmStr.replace('MM', minutes);
	fmStr = fmStr.replace('ss', seconds);
	fmStr = fmStr.replace('SSS', milliSeconds);
	fmStr = fmStr.replace('W', weekCN[week - 1]);
	fmStr = fmStr.replace('ww', weekEN[week - 1]);
	fmStr = fmStr.replace('w', week);

	return fmStr;
}
関数で処理するのが面倒くさいと思ったら、この関数をDateオブジェクトの原型に追加してもいいです.これはDateオブジェクトで直接呼び出すだけでいいです.
Date.prototype.format = function(fmStr){
	timeFormat(this, fmStr);
}
var time = new Date();
var fm = time.format('yyyy-mm-dd');
上のコードは簡単にコードを書き換えていないため、原型の上でformat関数の中でtimeFormat関数を呼び出して実際に直接timeFormat関数を原型の上のformatに割り当てることができます.timeFormatの中のパラメータを修正するだけで、更にtimeパラメータに入る必要はなく、直接timeをtimeとして使えばいいです.