How to get datetime in JavaScript?
如何使用格式31/12/2010 03:55 AM获取JavaScript日期时间?
在语义上,你可能正在寻找单线
1 | new Date().toLocaleString() |
它在用户的语言环境中格式化日期。
如果您真的在寻找一种特定的日期格式,我推荐使用moment.js库。
如果格式是"固定的"意味着您不必使用其他格式,则可以使用纯JavaScript而不是使用整个库来格式化日期:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | //Pad given value to the left with"0" function AddZero(num) { return (num >= 0 && num < 10) ?"0" + num : num +""; } window.onload = function() { var now = new Date(); var strDateTime = [[AddZero(now.getDate()), AddZero(now.getMonth() + 1), now.getFullYear()].join("/"), [AddZero(now.getHours()), AddZero(now.getMinutes())].join(":"), now.getHours() >= 12 ?"PM" :"AM"].join(""); document.getElementById("Console").innerHTML ="Now:" + strDateTime; }; |
1 |
变量
我使用
1 2 3 | var now = new Date(); now.format("dd/MM/yyyy hh:mm TT"); |
在这里获取完整的详细信息:Flagrant Badassery? JavaScript日期格式
非常接近 - 只需删除逗号和秒:
结果:
您可以使用我在下面添加的代码段将日期转换为几乎任何格式。
码:
1 2 | dateFormat(new Date(),"dd/mm/yy h:MM TT") //"20/06/14 6:49 PM" |
其他例子
1 2 3 4 5 6 | // Can also be used as a standalone function dateFormat(new Date(),"dddd, mmmm dS, yyyy, h:MM:ss TT"); // Saturday, June 9th, 2007, 5:46:21 PM dateFormat(new Date(),"dddd d mmmm yyyy") //Monday 2 June 2014" |
片段:
将以下代码中的代码添加到您的代码中。
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 | function pad_2(number) { return (number < 10 ? '0' : '') + number; } function hours(date) { var hours = date.getHours(); if(hours > 12) return hours - 12; // Substract 12 hours when 13:00 and more return hours; } function am_pm(date) { if(date.getHours()==0 && date.getMinutes()==0 && date.getSeconds()==0) return ''; // No AM for MidNight if(date.getHours()==12 && date.getMinutes()==0 && date.getSeconds()==0) return ''; // No PM for Noon if(date.getHours()<12) return ' AM'; return ' PM'; } function date_format(date) { return pad_2(date.getDate()) + '/' + pad_2(date.getMonth()+1) + '/' + (date.getFullYear() + ' ').substring(2) + pad_2(hours(date)) + ':' + pad_2(date.getMinutes()) + am_pm(date); } |
代码在2012年9月3日10:11更正
@Shadow Wizard的代码应该在下午02:45而不是14:45 PM返回。所以我修改了他的代码:
1 2 3 4 5 6 7 8 9 10 | function getNowDateTimeStr(){ var now = new Date(); var hour = now.getHours() - (now.getHours() >= 12 ? 12 : 0); return [[AddZero(now.getDate()), AddZero(now.getMonth() + 1), now.getFullYear()].join("/"), [AddZero(hour), AddZero(now.getMinutes())].join(":"), now.getHours() >= 12 ?"PM" :"AM"].join(""); } //Pad given value to the left with"0" function AddZero(num) { return (num >= 0 && num < 10) ?"0" + num : num +""; } |