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-11
JS中for循環(huán)的四種寫法示例(入門級(jí))
對(duì)于for循環(huán)相信大家再常用不過(guò)了,下面這篇文章主要給大家介紹了關(guān)于JS中for循環(huán)的四種寫法,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04
JS采用絕對(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-06
js 實(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-01
javascript+css實(shí)現(xiàn)俄羅斯方塊小游戲
這篇文章主要為大家詳細(xì)介紹了javascript+css實(shí)現(xiàn)俄羅斯方塊小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-06-06

