1 var dateFormat = (function() { 2 var _map = { 3 i: !0, 4 r: /yyyy|yy|MM|cM|eM|M|dd|d|HH|H|mm|ms|ss|m|s|w|ct|et/g 5 }, 6 _12cc = ['上午', '下午'], 7 _12ec = ['A.M.', 'P.M.'], 8 _week = ['日', '一', '二', '三', '四', '五', '六'], 9 _cmon = ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二'], 10 _emon = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sept', 'Oct', 'Nov', 'Dec']; 11 var _fmtnmb = function(_number) { 12 _number = parseInt(_number) || 0; 13 return(_number < 10 ? '0' : '') + _number; 14 }; 15 var _fmtclc = function(_hour) { 16 return _hour < 12 ? 0 : 1; 17 }; 18 return function(_time, _format, _12time) { 19 if(!_time || !_format) 20 return ''; 21 _time = new Date(_time); 22 _map.yyyy = _time.getFullYear(); 23 _map.yy = ('' + _map.yyyy).substr(2); 24 _map.M = _time.getMonth() + 1; 25 _map.MM = _fmtnmb(_map.M); 26 _map.eM = _emon[_map.M - 1]; 27 _map.cM = _cmon[_map.M - 1]; 28 _map.d = _time.getDate(); 29 _map.dd = _fmtnmb(_map.d); 30 _map.H = _time.getHours(); 31 _map.HH = _fmtnmb(_map.H); 32 _map.m = _time.getMinutes(); 33 _map.mm = _fmtnmb(_map.m); 34 _map.s = _time.getSeconds(); 35 _map.ss = _fmtnmb(_map.s); 36 _map.ms = _time.getMilliseconds(); 37 _map.w = _week[_time.getDay()]; 38 var _cc = _fmtclc(_map.H); 39 _map.ct = _12cc[_cc]; 40 _map.et = _12ec[_cc]; 41 if(!!_12time) { 42 _map.H = _map.H % 12; 43 } 44 return _$encode(_map, _format); 45 }; 46 })(); 47 var _$encode = function(_map, _content) { 48 _content = '' + _content; 49 if(!_map || !_content) { 50 return _content || ''; 51 } 52 return _content.replace(_map.r, function($1) { 53 var _result = _map[!_map.i ? $1.toLowerCase() : $1]; 54 return _result != null ? _result : $1; 55 }); 56 }; 57 var time = new Date().getTime(); 58 console.log(dateFormat(time, "yy-MM-dd cM eM ct et w HH:mm:ss"));
这个函数不是本人写的,是在不经意间发现的,觉得写的不错,就像自己留下来。直接调用dateFormat()就行,第一个参数是你要转换的时间戳,第二个参数是个字符串,里面你想转换成什么样的,你就写成什么样的,至于每个字符代表什么意思,请参考22-40行代码!相信你们都能看懂……