我想用javascript获取特定格式的当前时间。
使用下面的函数并调用该函数,它将给我 星期五Feb 01 2013 13:56:40 GMT + 1300(新西兰夏令时间), 但我想将其格式化为 2013年2月1日星期五2:00 pm
var d = new Date(); var x = document.getElementById("time"); x.innerHTML = d;
当然,上面的代码没有任何格式化逻辑,但是我还没有遇到任何“有效的”格式化程序。
JavaScript Date有几种方法可以让您提取其部分:
getFullYear()-返回4位数字的年份 getMonth()-返回表示该年月份的从零开始的整数(0-11)。 getDate()-返回月份中的一天(1-31)。 getDay()-返回星期几(0-6)。0是星期日,6是星期六。 getHours()-返回一天中的小时(0-23)。 getMinutes()-返回分钟(0-59)。 getSeconds()-返回第二个(0-59)。 getMilliseconds()-返回毫秒数(0-999)。 getTimezoneOffset()-返回机器本地时间和UTC之间的分钟数。
getFullYear()
getMonth()
getDate()
getDay()
getHours()
getMinutes()
getSeconds()
getMilliseconds()
getTimezoneOffset()
没有内置方法可让您获取本地化的字符串,例如“星期五”,“二月”或“ PM”。您必须自己编写代码。要获取所需的字符串,您至少需要存储几天和几个月的字符串表示形式:
var months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; var days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
然后,使用上述方法将其放在一起:
var d = new Date(); var day = days[d.getDay()]; var hr = d.getHours(); var min = d.getMinutes(); if (min < 10) { min = "0" + min; } var ampm = "am"; if( hr > 12 ) { hr -= 12; ampm = "pm"; } var date = d.getDate(); var month = months[d.getMonth()]; var year = d.getFullYear(); var x = document.getElementById("time"); x.innerHTML = day + " " + hr + ":" + min + ampm + " " + date + " " + month + " " + year;
我有一个喜欢包含在标准库中的日期格式功能。它采用定义所需输出的格式字符串参数。格式字符串 大致 基于.Net自定义日期和时间格式字符串。对于您指定的格式,以下格式字符串将起作用: "dddd h:mmtt d MMM yyyy"。
"dddd h:mmtt d MMM yyyy"
var d = new Date(); var x = document.getElementById("time"); x.innerHTML = formatDate(d, "dddd h:mmtt d MMM yyyy");
这是我的完整日期格式化功能:
function formatDate(date, format, utc) { var MMMM = ["\x00", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; var MMM = ["\x01", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; var dddd = ["\x02", "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; var ddd = ["\x03", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]; function ii(i, len) { var s = i + ""; len = len || 2; while (s.length < len) s = "0" + s; return s; } var y = utc ? date.getUTCFullYear() : date.getFullYear(); format = format.replace(/(^|[^\\])yyyy+/g, "$1" + y); format = format.replace(/(^|[^\\])yy/g, "$1" + y.toString().substr(2, 2)); format = format.replace(/(^|[^\\])y/g, "$1" + y); var M = (utc ? date.getUTCMonth() : date.getMonth()) + 1; format = format.replace(/(^|[^\\])MMMM+/g, "$1" + MMMM[0]); format = format.replace(/(^|[^\\])MMM/g, "$1" + MMM[0]); format = format.replace(/(^|[^\\])MM/g, "$1" + ii(M)); format = format.replace(/(^|[^\\])M/g, "$1" + M); var d = utc ? date.getUTCDate() : date.getDate(); format = format.replace(/(^|[^\\])dddd+/g, "$1" + dddd[0]); format = format.replace(/(^|[^\\])ddd/g, "$1" + ddd[0]); format = format.replace(/(^|[^\\])dd/g, "$1" + ii(d)); format = format.replace(/(^|[^\\])d/g, "$1" + d); var H = utc ? date.getUTCHours() : date.getHours(); format = format.replace(/(^|[^\\])HH+/g, "$1" + ii(H)); format = format.replace(/(^|[^\\])H/g, "$1" + H); var h = H > 12 ? H - 12 : H == 0 ? 12 : H; format = format.replace(/(^|[^\\])hh+/g, "$1" + ii(h)); format = format.replace(/(^|[^\\])h/g, "$1" + h); var m = utc ? date.getUTCMinutes() : date.getMinutes(); format = format.replace(/(^|[^\\])mm+/g, "$1" + ii(m)); format = format.replace(/(^|[^\\])m/g, "$1" + m); var s = utc ? date.getUTCSeconds() : date.getSeconds(); format = format.replace(/(^|[^\\])ss+/g, "$1" + ii(s)); format = format.replace(/(^|[^\\])s/g, "$1" + s); var f = utc ? date.getUTCMilliseconds() : date.getMilliseconds(); format = format.replace(/(^|[^\\])fff+/g, "$1" + ii(f, 3)); f = Math.round(f / 10); format = format.replace(/(^|[^\\])ff/g, "$1" + ii(f)); f = Math.round(f / 10); format = format.replace(/(^|[^\\])f/g, "$1" + f); var T = H < 12 ? "AM" : "PM"; format = format.replace(/(^|[^\\])TT+/g, "$1" + T); format = format.replace(/(^|[^\\])T/g, "$1" + T.charAt(0)); var t = T.toLowerCase(); format = format.replace(/(^|[^\\])tt+/g, "$1" + t); format = format.replace(/(^|[^\\])t/g, "$1" + t.charAt(0)); var tz = -date.getTimezoneOffset(); var K = utc || !tz ? "Z" : tz > 0 ? "+" : "-"; if (!utc) { tz = Math.abs(tz); var tzHrs = Math.floor(tz / 60); var tzMin = tz % 60; K += ii(tzHrs) + ":" + ii(tzMin); } format = format.replace(/(^|[^\\])K/g, "$1" + K); var day = (utc ? date.getUTCDay() : date.getDay()) + 1; format = format.replace(new RegExp(dddd[0], "g"), dddd[day]); format = format.replace(new RegExp(ddd[0], "g"), ddd[day]); format = format.replace(new RegExp(MMMM[0], "g"), MMMM[M]); format = format.replace(new RegExp(MMM[0], "g"), MMM[M]); format = format.replace(/\\(.)/g, "$1"); return format; };