[转载]JavaScript Date时间类型格式化
格式化方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 | var dateFormat = function () { var token = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]| "[^" ]* "|'[^']*'/g, timezone = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g, timezoneClip = /[^-+\dA-Z]/g, pad = function (val, len) { val = String(val); len = len || 2; while (val.length < len) val = " 0 " + val; return val; }; // Regexes and supporting functions are cached through closure return function (date, mask, utc) { var dF = dateFormat; // You can't provide utc if you skip other args (use the " UTC: " mask prefix) if (arguments.length == 1 && Object.prototype.toString.call(date) == " [object String] " && !/\d/.test(date)) { mask = date; date = undefined; } // Passing date through Date applies Date.parse, if necessary date = date ? new Date(date) : new Date; if (isNaN(date)) throw SyntaxError(" invalid date "); mask = String(dF.masks[mask] || mask || dF.masks[" default "]); // Allow setting the utc argument via the mask if (mask.slice(0, 4) == " UTC: ") { mask = mask.slice(4); utc = true; } var _ = utc ? " getUTC " : " get ", d = date[_ + " Date "](), D = date[_ + " Day "](), m = date[_ + " Month "](), y = date[_ + " FullYear "](), H = date[_ + " Hours "](), M = date[_ + " Minutes "](), s = date[_ + " Seconds "](), L = date[_ + " Milliseconds "](), o = utc ? 0 : date.getTimezoneOffset(), flags = { d: d, dd: pad(d), ddd: dF.i18n.dayNames[D], dddd: dF.i18n.dayNames[D + 7], m: m + 1, mm: pad(m + 1), mmm: dF.i18n.monthNames[m], mmmm: dF.i18n.monthNames[m + 12], yy: String(y).slice(2), yyyy: y, h: H % 12 || 12, hh: pad(H % 12 || 12), H: H, HH: pad(H), M: M, MM: pad(M), s: s, ss: pad(s), l: pad(L, 3), L: pad(L > 99 ? Math.round(L / 10) : L), t: H < 12 ? " a " : " p ", tt: H < 12 ? " am " : " pm ", T: H < 12 ? " A " : " P ", TT: H < 12 ? " AM " : " PM ", Z: utc ? " UTC " : (String(date).match(timezone) || [" "]).pop().replace(timezoneClip, " "), o: (o > 0 ? " - " : " + ") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4), S: [" th ", " st ", " nd ", " rd "][d % 10 > 3 ? 0 : (d % 100 - d % 10 != 10) * d % 10] }; return mask.replace(token, function ($0) { return $0 in flags ? flags[$0] : $0.slice(1, $0.length - 1); }); }; }(); // Some common format strings dateFormat.masks = { " default ": " ddd mmm dd yyyy HH:MM:ss ", shortDate: " m/d/yy ", mediumDate: " mmm d, yyyy ", longDate: " mmmm d, yyyy ", fullDate: " dddd, mmmm d, yyyy ", shortTime: " h:MM TT ", mediumTime: " h:MM:ss TT ", longTime: " h:MM:ss TT Z ", isoDate: " yyyy-mm-dd ", isoTime: " HH:MM:ss ", isoDateTime: " yyyy-mm-dd 'T' HH:MM:ss ", isoUtcDateTime: " UTC:yyyy-mm-dd 'T' HH:MM:ss 'Z' " }; // Internationalization strings dateFormat.i18n = { dayNames: [ " Sun ", " Mon ", " Tue ", " Wed ", " Thu ", " Fri ", " Sat ", " Sunday ", " Monday ", " Tuesday ", " Wednesday ", " Thursday ", " Friday ", " Saturday " ], monthNames: [ " Jan ", " Feb ", " Mar ", " Apr ", " May ", " Jun ", " Jul ", " Aug ", " Sep ", " Oct ", " Nov ", " Dec ", " January ", " February ", " March ", " April ", " May ", " June ", " July ", " August ", " September ", " October ", " November ", " December" ] }; // For convenience... Date.prototype.format = function (mask, utc) { return dateFormat( this , mask, utc); }; |
使用方式如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | var now = new Date(); now.format( "m/dd/yy" ); // Returns, e.g., 6/09/07 // Can also be used as a standalone function dateFormat(now, "dddd, mmmm dS, yyyy, h:MM:ss TT" ); // Saturday, June 9th, 2007, 5:46:21 PM // You can use one of several named masks now.format( "isoDateTime" ); // 2007-06-09T17:46:21 // ...Or add your own dateFormat.masks.hammerTime = 'HH:MM! "Can\'t touch this!"' ; now.format( "hammerTime" ); // 17:46! Can't touch this! // When using the standalone dateFormat function, // you can also provide the date as a string dateFormat( "Jun 9 2007" , "fullDate" ); // Saturday, June 9, 2007 // Note that if you don't include the mask argument, // dateFormat.masks.default is used now.format(); // Sat Jun 09 2007 17:46:21 // And if you don't include the date argument, // the current date and time is used dateFormat(); // Sat Jun 09 2007 17:46:22 // You can also skip the date argument (as long as your mask doesn't // contain any numbers), in which case the current date/time is used dateFormat( "longTime" ); // 5:46:22 PM EST // And finally, you can convert local time to UTC time. Either pass in // true as an additional argument (no argument skipping allowed in this case): dateFormat(now, "longTime" , true ); now.format( "longTime" , true ); // Both lines return, e.g., 10:46:21 PM UTC // ...Or add the prefix "UTC:" to your mask. now.format( "UTC:h:MM:ss TT Z" ); // 10:46:21 PM UTC |
转载自:http://blog.csdn.net/zhensoft163/article/details/40632743
作者:VAllen
出处:http://www.cnblogs.com/vallen
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
唯有偏执者得以生存。
出处:http://www.cnblogs.com/vallen
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
唯有偏执者得以生存。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步