JS實現(xiàn)獲取各種格式的時間
在 JavaScript 中,可以使用內(nèi)置的 Date 對象來獲取當前時間,并根據(jù)需要格式化成不同的時間格式。以下是獲取時間、年月日和各種格式的時間的示例代碼:
// 獲取當前時間 let currentTime = new Date(); // 獲取年份 let year = currentTime.getFullYear(); // 獲取月份(注意月份是從0開始計數(shù)的,所以需要加1) let month = currentTime.getMonth() + 1; // 獲取日期 let day = currentTime.getDate(); // 獲取小時 let hours = currentTime.getHours(); // 獲取分鐘 let minutes = currentTime.getMinutes(); // 獲取秒數(shù) let seconds = currentTime.getSeconds(); // 獲取毫秒數(shù) let milliseconds = currentTime.getMilliseconds(); // 格式化時間為 YYYY-MM-DD let formattedDate = `${year}-${month.toString().padStart(2, '0')}-${day.toString().padStart(2, '0')}`; // 格式化時間為 HH:MM:SS let formattedTime = `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`; // 格式化時間為 YYYY-MM-DD HH:MM:SS let formattedDateTime = `${formattedDate} ${formattedTime}`; // 格式化時間為 MM/DD/YYYY let formattedDateUS = `${month.toString().padStart(2, '0')}/${day.toString().padStart(2, '0')}/${year}`; // 格式化時間為 HH:MM AM/PM let formattedTime12Hour = `${hours % 12 || 12}:${minutes.toString().padStart(2, '0')} ${hours < 12 ? 'AM' : 'PM'}`; console.log('當前時間:', currentTime); console.log('年份:', year); console.log('月份:', month); console.log('日期:', day); console.log('小時:', hours); console.log('分鐘:', minutes); console.log('秒數(shù):', seconds); console.log('毫秒數(shù):', milliseconds); console.log('格式化日期:', formattedDate); console.log('格式化時間:', formattedTime); console.log('格式化日期時間:', formattedDateTime); console.log('格式化日期(美國格式):', formattedDateUS); console.log('格式化12小時制時間:', formattedTime12Hour);
這段代碼將獲取當前時間,并使用不同的方法來獲取年份、月份、日期、小時、分鐘、秒數(shù)和毫秒數(shù)。然后,使用不同的格式化方式將時間格式化成不同的格式,包括YYYY-MM-DD、HH:MM:SS、YYYY-MM-DD HH:MM:SS、MM/DD/YYYY和HH:MM AM/PM等格式。你可以根據(jù)需要選擇合適的格式化方式來獲取不同的時間格式。
獲取昨天、明天的日期 、獲取本周、上周、下周的開始結(jié)束日期
在 JavaScript 中,可以使用 Date 對象和一些日期計算方法來獲取昨天、明天的日期,以及本周、上周、下周的開始和結(jié)束日期。以下是示例代碼:
// 獲取昨天的日期 let yesterday = new Date(); yesterday.setDate(yesterday.getDate() - 1); // 獲取明天的日期 let tomorrow = new Date(); tomorrow.setDate(tomorrow.getDate() + 1); // 獲取本周的開始日期和結(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)); // 獲取上周的開始日期和結(jié)束日期 let startOfLastWeek = new Date(startOfWeek); startOfLastWeek.setDate(startOfLastWeek.getDate() - 7); let endOfLastWeek = new Date(endOfWeek); endOfLastWeek.setDate(endOfLastWeek.getDate() - 7); // 獲取下周的開始日期和結(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('本周的開始日期:', startOfWeek); console.log('本周的結(jié)束日期:', endOfWeek); console.log('上周的開始日期:', startOfLastWeek); console.log('上周的結(jié)束日期:', endOfLastWeek); console.log('下周的開始日期:', startOfNextWeek); console.log('下周的結(jié)束日期:', endOfNextWeek);
這段代碼使用 Date 對象和一些日期計算方法來獲取昨天和明天的日期。然后,使用一些日期計算方法來獲取本周的開始日期和結(jié)束日期。接下來,通過調(diào)整本周的開始日期和結(jié)束日期,來獲取上周的開始日期和結(jié)束日期,以及下周的開始日期和結(jié)束日期。最后,將獲取到的日期打印輸出。你可以根據(jù)需要使用這些日期來進行進一步的處理和展示。
封裝整體
當你需要頻繁地獲取昨天、明天的日期,以及本周、上周、下周的開始和結(jié)束日期時,可以封裝一個函數(shù)來方便調(diào)用。以下是一個封裝的方案示例:
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('本周的開始日期:', dateRange.startOfWeek); console.log('本周的結(jié)束日期:', dateRange.endOfWeek); console.log('上周的開始日期:', dateRange.startOfLastWeek); console.log('上周的結(jié)束日期:', dateRange.endOfLastWeek); console.log('下周的開始日期:', dateRange.startOfNextWeek); console.log('下周的結(jié)束日期:', dateRange.endOfNextWeek);
這個封裝的方案定義了一個名為 getDateRange 的函數(shù),該函數(shù)返回一個包含昨天、明天的日期,以及本周、上周、下周的開始和結(jié)束日期的對象。然后,通過調(diào)用 getDateRange 函數(shù)來獲取日期范圍,并將結(jié)果打印輸出。你可以根據(jù)需要將這個方案集成到你的項目中,以方便地獲取日期范圍。
封裝方案的優(yōu)點
代碼復用:封裝方案可以將重復的代碼封裝起來,使得代碼更加簡潔和可維護。
方便調(diào)用:封裝方案可以將復雜的操作封裝成一個函數(shù),方便調(diào)用和使用。
提高可讀性:封裝方案可以給函數(shù)起一個有意義的名字,使得代碼更加易讀和易懂。
封裝方案的缺點
限制性:封裝方案可能無法滿足所有的使用場景,因為它是基于特定需求進行封裝的。
可擴展性:封裝方案可能難以擴展,特別是當需求發(fā)生變化時,可能需要修改封裝方案。
使用場景
封裝日期范圍的方案適用于以下場景:
1.需要頻繁地獲取昨天、明天的日期,以及本周、上周、下周的開始和結(jié)束日期。
2.需要在項目中多處地方使用相同的日期范圍。
3.需要將日期范圍的獲取邏輯封裝成一個可復用的函數(shù)。
總的來說,封裝方案適用于需要復用和簡化代碼的場景,特別是當某個操作需要在多個地方使用時。但是在使用封裝方案時,需要注意其適用性和可擴展性,確保方案能夠滿足當前的需求,并且能夠方便地進行擴展和修改。
到此這篇關(guān)于JS實現(xiàn)獲取各種格式的時間的文章就介紹到這了,更多相關(guān)JS獲取時間內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
javascript+css實現(xiàn)俄羅斯方塊小游戲
這篇文章主要為大家詳細介紹了javascript+css實現(xiàn)俄羅斯方塊小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-06-06