JavaScript實(shí)現(xiàn)年月日顯示
年月日是人們生活中常見(jiàn)的日期格式,網(wǎng)站或應(yīng)用程序中經(jīng)常需要使用JavaScript代碼將當(dāng)天的日期顯示在頁(yè)面上,以下是一個(gè)簡(jiǎn)單的實(shí)現(xiàn)方法。
var date = new Date(); //獲取當(dāng)前日期 document.writeln(date.getFullYear() + "年" + (date.getMonth() + 1) + "月" + date.getDate() + "日");
以上代碼中使用了Date對(duì)象的getFullYear、getMonth、getDate方法分別獲取年、月、日并輸出。
顯示當(dāng)前時(shí)間
如果需要顯示當(dāng)前時(shí)間,可以使用getHours、getMinutes、getSeconds方法獲取時(shí)、分、秒。
var date = new Date(); //獲取當(dāng)前日期 document.writeln(date.getFullYear() + "年" + (date.getMonth() + 1) + "月" + date.getDate() + "日 " + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds());
以上代碼中除了獲取年月日之外,還將當(dāng)前小時(shí)、分鐘、秒數(shù)拼接在輸出結(jié)果中,形成了完整的日期時(shí)間格式的顯示。
自定義日期格式
除了默認(rèn)的年月日顯示格式,開(kāi)發(fā)者還可以自定義日期格式。以下代碼實(shí)現(xiàn)以“YYYY-MM-DD”格式顯示日期:
function formatDate(date) { var year = date.getFullYear(); var month = date.getMonth() + 1; var day = date.getDate(); if (month< 10) { month = "0" + month; } if (day< 10) { day = "0" + day; } return year + "-" + month + "-" + day; } var date = new Date(); //獲取當(dāng)前日期 document.writeln(formatDate(date));
以上代碼中使用了一個(gè)自定義的函數(shù)formatDate,將日期拆分為年、月、日三個(gè)部分,對(duì)月份和日期進(jìn)行了特判,如果小于10則在前面加上0位,這樣可以保證不足兩位的月、日前面有0進(jìn)行補(bǔ)全,最后返回拼接的結(jié)果。
格式化輸出解析ISO8601標(biāo)準(zhǔn)日期格式
如果需要處理ISO8601標(biāo)準(zhǔn)的日期格式,可以使用以下代碼:
function parseISO8601(dateStringInRange) { var isoExp = /^s*\d{4}-?(\d{2})-?(\d{2})T?(\d{2})?(\d{2})?(\d{2})?.?(\d+)?Z?\s*$/; var date = new Date(NaN); var month, day, hour, minute, second, ms; var parts = isoExp.exec(dateStringInRange); if (parts) { month = +parts[1]; day = +parts[2]; hour = +parts[3]; minute = +parts[4]; second = +parts[5]; ms = parts[6] ? +parts[6].substr(0, 3) : 0; if (month< 10) { month = "0" + month; } if (day< 10) { day = "0" + day; } if (!isNaN(hour)) { date.setUTCFullYear(parts[0], month - 1, day); date.setUTCHours(hour, minute, second, ms); } else { date.setUTCFullYear(parts[0], month - 1, day); } } return date; } var isoDate = "2019-11-25T08:30:00Z"; var date = parseISO8601(isoDate); document.writeln(date);
以上代碼中使用了parseISO8601函數(shù),利用正則表達(dá)式匹配ISO8601日期格式字符串的各個(gè)部分,然后將年、月、日、小時(shí)、分鐘等信息保存到Date對(duì)象中,返回格式化后的日期。
總結(jié)
JavaScript可以很方便地實(shí)現(xiàn)日期時(shí)間的顯示和格式化,開(kāi)發(fā)者可以根據(jù)需求自定義日期顯示格式,并且可以處理ISO8601標(biāo)準(zhǔn)日期格式,方便地在開(kāi)發(fā)中應(yīng)用。