JavaScript中將YYYYMMDD轉(zhuǎn)換為日期的三種方法
在 JavaScript 中,將 "20250806"(格式為 YYYYMMDD)轉(zhuǎn)換為日期對(duì)象,可以通過(guò)以下步驟實(shí)現(xiàn):
方法 1:手動(dòng)拆分字符串
const dateStr = "20250806"; // 拆分字符串獲取年、月、日(注意:月份從 0 開(kāi)始計(jì)數(shù)) const year = parseInt(dateStr.substring(0, 4)); const month = parseInt(dateStr.substring(4, 6)) - 1; // 月份減 1 const day = parseInt(dateStr.substring(6, 8)); // 創(chuàng)建 Date 對(duì)象 const date = new Date(year, month, day); console.log(date); // 輸出: Wed Aug 06 2025 00:00:00 GMT+0800 (中國(guó)標(biāo)準(zhǔn)時(shí)間)
方法 2:使用正則表達(dá)式
const dateStr = "20250806";
// 正則匹配提取年、月、日
const [, year, month, day] = dateStr.match(/^(\d{4})(\d{2})(\d{2})$/);
// 創(chuàng)建 Date 對(duì)象(月份需減 1)
const date = new Date(year, month - 1, day);
console.log(date); // 同上方法 3:使用 ISO 8601 格式(推薦)
const dateStr = "20250806";
// 轉(zhuǎn)換為 YYYY-MM-DD 格式(ISO 8601)
const isoStr = `${dateStr.slice(0, 4)}-${dateStr.slice(4, 6)}-${dateStr.slice(6, 8)}`;
// 直接通過(guò)字符串創(chuàng)建 Date 對(duì)象
const date = new Date(isoStr);
console.log(date); // 同上(注意時(shí)區(qū)差異可能影響輸出)關(guān)鍵說(shuō)明:
月份從 0 開(kāi)始
JavaScript 的 Date 構(gòu)造函數(shù)中,月份是 0(1月)到 11(12月),所以需要將原始字符串中的月份減 1。
時(shí)區(qū)問(wèn)題
const utcDate = new Date(Date.UTC(year, month, day));
方法 1 和 2 創(chuàng)建的日期基于 本地時(shí)區(qū)(如 GMT+0800)。
方法 3(ISO 格式)創(chuàng)建的日期可能被解析為 UTC 時(shí)間,再轉(zhuǎn)換為本地時(shí)區(qū)(不同瀏覽器可能有差異)。
如果需要 UTC 時(shí)間,請(qǐng)用:
驗(yàn)證有效性
建議檢查生成的日期是否有效:
if (isNaN(date.getTime())) {
console.error("無(wú)效日期");
}最終選擇:
推薦方法 3(ISO 8601 格式),代碼簡(jiǎn)潔且符合標(biāo)準(zhǔn)。
如果需兼容舊瀏覽器,可選方法 1(手動(dòng)拆分)。
export const formatDate = (date: string | Date | number, format = "YYYY-MM-DD HH:mm:ss") => {
let resultTime = "";
try {
// 支持 ISO 8601 格式,日期格式為 YYYYMMDD,如:20250806
if ((typeof date === "string" && date.length === 8) || (typeof date === "number" && date.toString().length === 8)) {
if (typeof date === "number") {
date = date.toString();
}
date = `${date.slice(0, 4)}-${date.slice(4, 6)}-${date.slice(6, 8)}`;
}
resultTime = dayjs(date).format(format);
} catch (error) {}
// 處理無(wú)效日期
return resultTime === "Invalid Date" ? "" : resultTime;
};到此這篇關(guān)于JavaScript中將YYYYMMDD轉(zhuǎn)換為日期的三種方法的文章就介紹到這了,更多相關(guān)JavaScript YYYYMMDD轉(zhuǎn)日期內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
淺談bootstrap源碼分析之scrollspy(滾動(dòng)偵聽(tīng))
下面小編就為大家?guī)?lái)一篇淺談bootstrap源碼分析之scrollspy(滾動(dòng)偵聽(tīng))。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-06-06
javascript簡(jiǎn)單實(shí)現(xiàn)命名空間效果
這篇文章主要介紹了javascript簡(jiǎn)單的實(shí)現(xiàn)命名空間效果的方法。需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2014-03-03
JavaScript 關(guān)鍵字屏蔽實(shí)現(xiàn)函數(shù)
JavaScript屏蔽關(guān)鍵字,大概的思路就是去用javascript去替換已有的文本,達(dá)到替換的目的2009-08-08
jquery中l(wèi)ive()方法和bind()方法區(qū)別分析
這篇文章主要介紹了jquery中l(wèi)ive()方法和bind()方法區(qū)別,結(jié)合實(shí)例形式簡(jiǎn)單分析了live()方法和bind()方法的功能、使用方法與用法區(qū)別,需要的朋友可以參考下2016-06-06
移動(dòng)端觸屏幻燈片圖片切換插件idangerous swiper.js
這篇文章主要為大家詳細(xì)介紹了移動(dòng)端觸屏幻燈片圖片切換插件idangerous swiper.js的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04
javascript設(shè)計(jì)模式之Adapter模式【適配器模式】實(shí)現(xiàn)方法示例
這篇文章主要介紹了javascript設(shè)計(jì)模式之Adapter模式,結(jié)合實(shí)例形式分析了JS適配器模式的原理與具體實(shí)現(xiàn)方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2017-01-01
js實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊飄愛(ài)心效果
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊飄愛(ài)心效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-08-08

