JS實(shí)現(xiàn)獲取各種格式的時(shí)間
在 JavaScript 中,可以使用內(nèi)置的 Date 對(duì)象來(lái)獲取當(dāng)前時(shí)間,并根據(jù)需要格式化成不同的時(shí)間格式。以下是獲取時(shí)間、年月日和各種格式的時(shí)間的示例代碼:
// 獲取當(dāng)前時(shí)間 let currentTime = new Date(); // 獲取年份 let year = currentTime.getFullYear(); // 獲取月份(注意月份是從0開(kāi)始計(jì)數(shù)的,所以需要加1) let month = currentTime.getMonth() + 1; // 獲取日期 let day = currentTime.getDate(); // 獲取小時(shí) let hours = currentTime.getHours(); // 獲取分鐘 let minutes = currentTime.getMinutes(); // 獲取秒數(shù) let seconds = currentTime.getSeconds(); // 獲取毫秒數(shù) let milliseconds = currentTime.getMilliseconds(); // 格式化時(shí)間為 YYYY-MM-DD let formattedDate = `${year}-${month.toString().padStart(2, '0')}-${day.toString().padStart(2, '0')}`; // 格式化時(shí)間為 HH:MM:SS let formattedTime = `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`; // 格式化時(shí)間為 YYYY-MM-DD HH:MM:SS let formattedDateTime = `${formattedDate} ${formattedTime}`; // 格式化時(shí)間為 MM/DD/YYYY let formattedDateUS = `${month.toString().padStart(2, '0')}/${day.toString().padStart(2, '0')}/${year}`; // 格式化時(shí)間為 HH:MM AM/PM let formattedTime12Hour = `${hours % 12 || 12}:${minutes.toString().padStart(2, '0')} ${hours < 12 ? 'AM' : 'PM'}`; console.log('當(dāng)前時(shí)間:', currentTime); console.log('年份:', year); console.log('月份:', month); console.log('日期:', day); console.log('小時(shí):', hours); console.log('分鐘:', minutes); console.log('秒數(shù):', seconds); console.log('毫秒數(shù):', milliseconds); console.log('格式化日期:', formattedDate); console.log('格式化時(shí)間:', formattedTime); console.log('格式化日期時(shí)間:', formattedDateTime); console.log('格式化日期(美國(guó)格式):', formattedDateUS); console.log('格式化12小時(shí)制時(shí)間:', formattedTime12Hour);
這段代碼將獲取當(dāng)前時(shí)間,并使用不同的方法來(lái)獲取年份、月份、日期、小時(shí)、分鐘、秒數(shù)和毫秒數(shù)。然后,使用不同的格式化方式將時(shí)間格式化成不同的格式,包括YYYY-MM-DD、HH:MM:SS、YYYY-MM-DD HH:MM:SS、MM/DD/YYYY和HH:MM AM/PM等格式。你可以根據(jù)需要選擇合適的格式化方式來(lái)獲取不同的時(shí)間格式。
獲取昨天、明天的日期 、獲取本周、上周、下周的開(kāi)始結(jié)束日期
在 JavaScript 中,可以使用 Date 對(duì)象和一些日期計(jì)算方法來(lái)獲取昨天、明天的日期,以及本周、上周、下周的開(kāi)始和結(jié)束日期。以下是示例代碼:
// 獲取昨天的日期 let yesterday = new Date(); yesterday.setDate(yesterday.getDate() - 1); // 獲取明天的日期 let tomorrow = new Date(); tomorrow.setDate(tomorrow.getDate() + 1); // 獲取本周的開(kāi)始日期和結(jié)束日期 let today = new Date(); let startOfWeek = new Date(today.setDate(today.getDate() - today.getDay())); let endOfWeek = new Date(today.setDate(today.getDate() - today.getDay() + 6)); // 獲取上周的開(kāi)始日期和結(jié)束日期 let startOfLastWeek = new Date(startOfWeek); startOfLastWeek.setDate(startOfLastWeek.getDate() - 7); let endOfLastWeek = new Date(endOfWeek); endOfLastWeek.setDate(endOfLastWeek.getDate() - 7); // 獲取下周的開(kāi)始日期和結(jié)束日期 let startOfNextWeek = new Date(startOfWeek); startOfNextWeek.setDate(startOfNextWeek.getDate() + 7); let endOfNextWeek = new Date(endOfWeek); endOfNextWeek.setDate(endOfNextWeek.getDate() + 7); console.log('昨天的日期:', yesterday); console.log('明天的日期:', tomorrow); console.log('本周的開(kāi)始日期:', startOfWeek); console.log('本周的結(jié)束日期:', endOfWeek); console.log('上周的開(kāi)始日期:', startOfLastWeek); console.log('上周的結(jié)束日期:', endOfLastWeek); console.log('下周的開(kāi)始日期:', startOfNextWeek); console.log('下周的結(jié)束日期:', endOfNextWeek);
這段代碼使用 Date 對(duì)象和一些日期計(jì)算方法來(lái)獲取昨天和明天的日期。然后,使用一些日期計(jì)算方法來(lái)獲取本周的開(kāi)始日期和結(jié)束日期。接下來(lái),通過(guò)調(diào)整本周的開(kāi)始日期和結(jié)束日期,來(lái)獲取上周的開(kāi)始日期和結(jié)束日期,以及下周的開(kāi)始日期和結(jié)束日期。最后,將獲取到的日期打印輸出。你可以根據(jù)需要使用這些日期來(lái)進(jìn)行進(jìn)一步的處理和展示。
封裝整體
當(dāng)你需要頻繁地獲取昨天、明天的日期,以及本周、上周、下周的開(kāi)始和結(jié)束日期時(shí),可以封裝一個(gè)函數(shù)來(lái)方便調(diào)用。以下是一個(gè)封裝的方案示例:
function getDateRange() { let today = new Date(); let yesterday = new Date(); yesterday.setDate(yesterday.getDate() - 1); let tomorrow = new Date(); tomorrow.setDate(tomorrow.getDate() + 1); let startOfWeek = new Date(today.setDate(today.getDate() - today.getDay())); let endOfWeek = new Date(today.setDate(today.getDate() - today.getDay() + 6)); let startOfLastWeek = new Date(startOfWeek); startOfLastWeek.setDate(startOfLastWeek.getDate() - 7); let endOfLastWeek = new Date(endOfWeek); endOfLastWeek.setDate(endOfLastWeek.getDate() - 7); let startOfNextWeek = new Date(startOfWeek); startOfNextWeek.setDate(startOfNextWeek.getDate() + 7); let endOfNextWeek = new Date(endOfWeek); endOfNextWeek.setDate(endOfNextWeek.getDate() + 7); return { yesterday, tomorrow, startOfWeek, endOfWeek, startOfLastWeek, endOfLastWeek, startOfNextWeek, endOfNextWeek, }; } // 調(diào)用函數(shù)獲取日期范圍 let dateRange = getDateRange(); console.log('昨天的日期:', dateRange.yesterday); console.log('明天的日期:', dateRange.tomorrow); console.log('本周的開(kāi)始日期:', dateRange.startOfWeek); console.log('本周的結(jié)束日期:', dateRange.endOfWeek); console.log('上周的開(kāi)始日期:', dateRange.startOfLastWeek); console.log('上周的結(jié)束日期:', dateRange.endOfLastWeek); console.log('下周的開(kāi)始日期:', dateRange.startOfNextWeek); console.log('下周的結(jié)束日期:', dateRange.endOfNextWeek);
這個(gè)封裝的方案定義了一個(gè)名為 getDateRange 的函數(shù),該函數(shù)返回一個(gè)包含昨天、明天的日期,以及本周、上周、下周的開(kāi)始和結(jié)束日期的對(duì)象。然后,通過(guò)調(diào)用 getDateRange 函數(shù)來(lái)獲取日期范圍,并將結(jié)果打印輸出。你可以根據(jù)需要將這個(gè)方案集成到你的項(xiàng)目中,以方便地獲取日期范圍。
封裝方案的優(yōu)點(diǎn)
代碼復(fù)用:封裝方案可以將重復(fù)的代碼封裝起來(lái),使得代碼更加簡(jiǎn)潔和可維護(hù)。
方便調(diào)用:封裝方案可以將復(fù)雜的操作封裝成一個(gè)函數(shù),方便調(diào)用和使用。
提高可讀性:封裝方案可以給函數(shù)起一個(gè)有意義的名字,使得代碼更加易讀和易懂。
封裝方案的缺點(diǎn)
限制性:封裝方案可能無(wú)法滿足所有的使用場(chǎng)景,因?yàn)樗腔谔囟ㄐ枨筮M(jìn)行封裝的。
可擴(kuò)展性:封裝方案可能難以擴(kuò)展,特別是當(dāng)需求發(fā)生變化時(shí),可能需要修改封裝方案。
使用場(chǎng)景
封裝日期范圍的方案適用于以下場(chǎng)景:
1.需要頻繁地獲取昨天、明天的日期,以及本周、上周、下周的開(kāi)始和結(jié)束日期。
2.需要在項(xiàng)目中多處地方使用相同的日期范圍。
3.需要將日期范圍的獲取邏輯封裝成一個(gè)可復(fù)用的函數(shù)。
總的來(lái)說(shuō),封裝方案適用于需要復(fù)用和簡(jiǎn)化代碼的場(chǎng)景,特別是當(dāng)某個(gè)操作需要在多個(gè)地方使用時(shí)。但是在使用封裝方案時(shí),需要注意其適用性和可擴(kuò)展性,確保方案能夠滿足當(dāng)前的需求,并且能夠方便地進(jìn)行擴(kuò)展和修改。
到此這篇關(guān)于JS實(shí)現(xiàn)獲取各種格式的時(shí)間的文章就介紹到這了,更多相關(guān)JS獲取時(shí)間內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JavaScript實(shí)現(xiàn)的日期控件具體代碼
JavaScript實(shí)現(xiàn)的日期控件,它還會(huì)讀取當(dāng)前的時(shí)間,有需要的朋友可以參考一下2013-11-11JS中for循環(huán)的四種寫(xiě)法示例(入門級(jí))
對(duì)于for循環(huán)相信大家再常用不過(guò)了,下面這篇文章主要給大家介紹了關(guān)于JS中for循環(huán)的四種寫(xiě)法,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04JS采用絕對(duì)定位實(shí)現(xiàn)回到頂部效果完整實(shí)例
這篇文章主要介紹了JS采用絕對(duì)定位實(shí)現(xiàn)回到頂部效果,以完整實(shí)例形式分析了JS定位到頁(yè)面頂部功能的實(shí)現(xiàn)方法,涉及javascript動(dòng)態(tài)操作頁(yè)面元素與屬性的相關(guān)技巧,需要的朋友可以參考下2016-06-06js 實(shí)現(xiàn)復(fù)選框只能選擇一項(xiàng)的示例代碼
下面小編就為大家分享一篇js 實(shí)現(xiàn)復(fù)選框只能選擇一項(xiàng)的示例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-01-01簡(jiǎn)單談?wù)刯avascript代碼復(fù)用模式
這篇文章主要簡(jiǎn)單談?wù)刯avascript代碼復(fù)用模式,主要詳細(xì)介紹了類式繼承模式中的默認(rèn)模式,希望大家能夠喜歡。2015-01-01javascript+css實(shí)現(xiàn)俄羅斯方塊小游戲
這篇文章主要為大家詳細(xì)介紹了javascript+css實(shí)現(xiàn)俄羅斯方塊小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-06-06