js日期時(shí)間格式化的方法實(shí)例
js日期時(shí)間格式化
將日期時(shí)間轉(zhuǎn)換為指定格式,如:YYYY-mm-dd HH:MM表示2019-06-06 19:45
function dateFormat(fmt, date) { let ret; const opt = { "Y+": date.getFullYear().toString(), // 年 "m+": (date.getMonth() + 1).toString(), // 月 "d+": date.getDate().toString(), // 日 "H+": date.getHours().toString(), // 時(shí) "M+": date.getMinutes().toString(), // 分 "S+": date.getSeconds().toString() // 秒 // 有其他格式化字符需求可以繼續(xù)添加,必須轉(zhuǎn)化成字符串 }; for (let k in opt) { ret = new RegExp("(" + k + ")").exec(fmt); if (ret) { fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0"))) }; }; return fmt; }
用法:
let date = new Date() dateFormat("YYYY-mm-dd HH:MM", date) >>> 2019-06-06 19:45`
如果對(duì)日期時(shí)間處理的需求較多, 推薦moment.js這個(gè)日期處理類庫(kù), 簡(jiǎn)單方便.
Moment.js格式化日期時(shí)間
Moment.js是一個(gè)輕量級(jí)的JavaScript時(shí)間庫(kù),它方便了日常開(kāi)發(fā)中對(duì)時(shí)間的操作,提高了開(kāi)發(fā)效率。日常開(kāi)發(fā)中,通常會(huì)對(duì)時(shí)間進(jìn)行這幾個(gè)操作:比如獲取時(shí)間,設(shè)置時(shí)間,格式化時(shí)間,比較時(shí)間等等。
格式化日期
當(dāng)前時(shí)間:
moment().format('YYYY-MM-DD HH:mm:ss'); //2014-09-24 23:36:09
今天是星期幾:
moment().format('d'); //3
轉(zhuǎn)換當(dāng)前時(shí)間的Unix時(shí)間戳:
moment().format('X');
相對(duì)時(shí)間
20120901相對(duì)當(dāng)前日期是2年前
moment("20120901", "YYYYMMDD").fromNow(); //2 years ago
7天后的日期:
moment().add('days',7).format('YYYY年MM月DD日'); //2014年10月01日
9小時(shí)后的時(shí)間:
moment().add('hours',9).format('HH:mm:ss');
moment.js提供了豐富的說(shuō)明文檔,使用它還可以創(chuàng)建日歷項(xiàng)目等復(fù)雜的日期時(shí)間應(yīng)用。我們?nèi)粘i_(kāi)發(fā)中最常用的是格式化時(shí)間,下面我把常用的格式制作成表格說(shuō)明供有需要的朋友查看:
格式代碼 | 說(shuō)明 | 返回值例子 |
M | 數(shù)字表示的月份,沒(méi)有前導(dǎo)零 | 1到12 |
MM | 數(shù)字表示的月份,有前導(dǎo)零 | 01到12 |
MMM | 三個(gè)字母縮寫表示的月份 | Jan到Dec |
MMMM | 月份,完整的文本格式 | January到December |
Q | 季度 | 1到4 |
D | 月份中的第幾天,沒(méi)有前導(dǎo)零 | 1到31 |
DD | 月份中的第幾天,有前導(dǎo)零 | 01到31 |
d | 星期中的第幾天,數(shù)字表示 | 0到6,0表示周日,6表示周六 |
ddd | 三個(gè)字母表示星期中的第幾天 | Sun到Sat |
dddd | 星期幾,完整的星期文本 | 從Sunday到Saturday |
w | 年份中的第幾周 | 如42:表示第42周 |
YYYY | 四位數(shù)字完整表示的年份 | 如:2014 或 2000 |
YY | 兩位數(shù)字表示的年份 | 如:14 或 98 |
A | 大寫的AM PM | AM PM |
a | 小寫的am pm | am pm |
HH | 小時(shí),24小時(shí)制,有前導(dǎo)零 | 00到23 |
H | 小時(shí),24小時(shí)制,無(wú)前導(dǎo)零 | 0到23 |
hh | 小時(shí),12小時(shí)制,有前導(dǎo)零 | 00到12 |
h | 小時(shí),12小時(shí)制,無(wú)前導(dǎo)零 | 0到12 |
m | 沒(méi)有前導(dǎo)零的分鐘數(shù) | 0到59 |
mm | 有前導(dǎo)零的分鐘數(shù) | 00到59 |
s | 沒(méi)有前導(dǎo)零的秒數(shù) | 1到59 |
ss | 有前導(dǎo)零的描述 | 01到59 |
X | Unix時(shí)間戳 | 1411572969 |
更多有關(guān)moment.js的介紹,請(qǐng)?jiān)L問(wèn)項(xiàng)目官網(wǎng):http://momentjs.com/
總結(jié)
到此這篇關(guān)于js日期時(shí)間格式化的文章就介紹到這了,更多相關(guān)js日期時(shí)間格式化內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JavaScript的事件監(jiān)聽(tīng)你了解嗎
這篇文章主要為大家詳細(xì)介紹了JavaScript的事件監(jiān)聽(tīng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-03-03JavaScript滑動(dòng)驗(yàn)證功能實(shí)現(xiàn)詳細(xì)代碼
這篇文章主要給大家介紹了關(guān)于JavaScript滑動(dòng)驗(yàn)證功能實(shí)現(xiàn)的相關(guān)資料,滑動(dòng)拼圖驗(yàn)證功能是一種常見(jiàn)的網(wǎng)站人機(jī)驗(yàn)證方法,旨在防止惡意機(jī)器人或自動(dòng)化程序?qū)W(wǎng)站進(jìn)行惡意攻擊,需要的朋友可以參考下2024-06-06微信小程序?qū)崿F(xiàn)可以截?cái)嗟钠俨剂鹘M件的示例代碼
本文主要介紹了微信小程序?qū)崿F(xiàn)可以截?cái)嗟钠俨剂鹘M件2022-01-01JavaScript三種方法解決約瑟夫環(huán)問(wèn)題的方法
約瑟夫環(huán)問(wèn)題又稱約瑟夫問(wèn)題或丟手絹問(wèn)題,是一道經(jīng)典的算法問(wèn)題,本篇將以循環(huán)鏈表、有序數(shù)組、數(shù)學(xué)遞歸三種方式來(lái)解決約瑟夫環(huán)問(wèn)題。感興趣的可以了解一下2021-09-09javaScript讓文本框內(nèi)的最后一個(gè)文字的后面獲得焦點(diǎn)實(shí)現(xiàn)代碼
讓文本框內(nèi)的最后一個(gè)文字的后面獲得焦點(diǎn),在應(yīng)用中很常見(jiàn),接下來(lái)提供解決方案,按興趣的朋友可以了解下2013-01-01一文帶你搞懂JS中導(dǎo)入模塊import和require的區(qū)別
JavaScript中,模塊是一種可重用的代碼塊,它將一些代碼打包成一個(gè)單獨(dú)的單元,并且可以在其他代碼中進(jìn)行導(dǎo)入和使用。JavaScript中有兩種常用的方式:使用import和require,本文主要聊聊他們二者的區(qū)別2023-03-03Javascript實(shí)現(xiàn)檢測(cè)客戶端類型代碼封包
在以前,總是以為使用用戶代理字符串檢測(cè)瀏覽器是那種類型就行了,這樣確實(shí)大錯(cuò)特錯(cuò)啊,下面就來(lái)說(shuō)說(shuō)如何通過(guò)js判斷出當(dāng)前瀏覽者使用的的設(shè)備類型呢2015-12-12