JavaScript實現(xiàn)獲取年月日時間的方法總結
首先介紹時間的獲取
// 獲取當前時間 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);
獲取本月和上月的開始和結束日期
function getMonthDates() { let today = new Date(); let year = today.getFullYear(); let month = today.getMonth(); let startOfMonth = new Date(year, month, 1); let endOfMonth = new Date(year, month + 1, 0); let startOfLastMonth = new Date(year, month - 1, 1); let endOfLastMonth = new Date(year, month, 0); return { startOfMonth, endOfMonth, startOfLastMonth, endOfLastMonth, }; } // 調(diào)用函數(shù)獲取本月和上月的日期范圍 let monthDates = getMonthDates(); console.log('本月的開始日期:', monthDates.startOfMonth); console.log('本月的結束日期:', monthDates.endOfMonth); console.log('上月的開始日期:', monthDates.startOfLastMonth); console.log('上月的結束日期:', monthDates.endOfLastMonth);
這個封裝的方案定義了一個名為 getMonthDates 的函數(shù),該函數(shù)根據(jù)當前日期獲取本月和上月的開始和結束日期,并返回一個包含這些日期的對象。然后,通過調(diào)用 getMonthDates 函數(shù)來獲取日期范圍,并將結果打印輸出。
這些封裝方案可以方便地獲取本月和上月的日期范圍,可以根據(jù)需要將其集成到你的項目中。
要獲取本季度和上季度的開始和結束日期
可以使用以下封裝方案:
function getQuarterDates() { let today = new Date(); let year = today.getFullYear(); let month = today.getMonth(); let quarter = Math.floor(month / 3) + 1; let startOfQuarter = new Date(year, (quarter - 1) * 3, 1); let endOfQuarter = new Date(year, quarter * 3, 0); let startOfLastQuarter = new Date(year, (quarter - 2) * 3, 1); let endOfLastQuarter = new Date(year, (quarter - 1) * 3, 0); return { startOfQuarter, endOfQuarter, startOfLastQuarter, endOfLastQuarter, }; } // 調(diào)用函數(shù)獲取本季度和上季度的日期范圍 let quarterDates = getQuarterDates(); console.log('本季度的開始日期:', quarterDates.startOfQuarter); console.log('本季度的結束日期:', quarterDates.endOfQuarter); console.log('上季度的開始日期:', quarterDates.startOfLastQuarter); console.log('上季度的結束日期:', quarterDates.endOfLastQuarter);
這個封裝的方案定義了一個名為 getQuarterDates 的函數(shù),該函數(shù)根據(jù)當前日期獲取本季度和上季度的開始和結束日期,并返回一個包含這些日期的對象。然后,通過調(diào)用 getQuarterDates 函數(shù)來獲取日期范圍,并將結果打印輸出。
要獲取上一年的開始和結束日期,可以使用以下封裝方案:
function getLastYearDates() { let today = new Date(); let year = today.getFullYear(); let startOfYear = new Date(year - 1, 0, 1); let endOfYear = new Date(year - 1, 11, 31); return { startOfYear, endOfYear, }; } // 調(diào)用函數(shù)獲取上一年的日期范圍 let lastYearDates = getLastYearDates(); console.log('上一年的開始日期:', lastYearDates.startOfYear); console.log('上一年的結束日期:', lastYearDates.endOfYear);
這個封裝的方案定義了一個名為 getLastYearDates 的函數(shù),該函數(shù)根據(jù)當前日期獲取上一年的開始和結束日期,并返回一個包含這些日期的對象。然后,通過調(diào)用 getLastYearDates 函數(shù)來獲取日期范圍,并將結果打印輸出。
這些封裝方案可以方便地獲取本季度、上季度以及上一年的日期范圍,可以根據(jù)需要將其集成到你的項目中。
整體封裝
以下是一個封裝了獲取上月、本月、本季度、上季度和年度的開始和結束時間的方法:
function getDateRange() { let today = new Date(); let year = today.getFullYear(); let month = today.getMonth(); let quarter = Math.floor(month / 3); let startOfMonth = new Date(year, month, 1); let endOfMonth = new Date(year, month + 1, 0); let startOfLastMonth = new Date(year, month - 1, 1); let endOfLastMonth = new Date(year, month, 0); let startOfQuarter = new Date(year, quarter * 3, 1); let endOfQuarter = new Date(year, quarter * 3 + 3, 0); let startOfLastQuarter = new Date(year, (quarter - 1) * 3, 1); let endOfLastQuarter = new Date(year, quarter * 3, 0); let startOfYear = new Date(year, 0, 1); let endOfYear = new Date(year, 11, 31); return { startOfMonth, endOfMonth, startOfLastMonth, endOfLastMonth, startOfQuarter, endOfQuarter, startOfLastQuarter, endOfLastQuarter, startOfYear, endOfYear, }; } // 調(diào)用函數(shù)獲取日期范圍 let dateRange = getDateRange(); console.log('本月的開始日期:', dateRange.startOfMonth); console.log('本月的結束日期:', dateRange.endOfMonth); console.log('上月的開始日期:', dateRange.startOfLastMonth); console.log('上月的結束日期:', dateRange.endOfLastMonth); console.log('本季度的開始日期:', dateRange.startOfQuarter); console.log('本季度的結束日期:', dateRange.endOfQuarter); console.log('上季度的開始日期:', dateRange.startOfLastQuarter); console.log('上季度的結束日期:', dateRange.endOfLastQuarter); console.log('本年度的開始日期:', dateRange.startOfYear); console.log('本年度的結束日期:', dateRange.endOfYear);
這個封裝的方法定義了一個名為 getDateRange 的函數(shù),該函數(shù)根據(jù)當前日期獲取上月、本月、本季度、上季度和年度的開始和結束時間,并返回一個包含這些時間的對象。然后,通過調(diào)用 getDateRange 函數(shù)來獲取日期范圍,并將結果打印輸出。
這個封裝方案可以方便地獲取上月、本月、本季度、上季度和年度的開始和結束時間,可以根據(jù)需要將其集成到你的項目中。
使用場景和優(yōu)缺點
上月、本月、本季度、上季度和年度的開始和結束時間可以在各種場景下使用,特別是與時間相關的數(shù)據(jù)分析、報表生成和業(yè)務邏輯計算等方面。以下是一些常見的使用場景:
數(shù)據(jù)分析和報表生成:在數(shù)據(jù)分析和報表生成過程中,經(jīng)常需要按照時間范圍進行數(shù)據(jù)篩選和計算。使用上月、本月、本季度、上季度和年度的開始和結束時間可以方便地獲取對應的時間范圍,從而準確地提取和計算相應的數(shù)據(jù)。
業(yè)務邏輯計算:在一些業(yè)務邏輯計算中,需要根據(jù)時間范圍進行特定的計算和判斷。例如,統(tǒng)計上月銷售額、計算本季度的利潤等。使用上月、本月、本季度、上季度和年度的開始和結束時間可以方便地獲取相應的時間范圍,從而進行業(yè)務邏輯計算。
時間過濾和查詢:在數(shù)據(jù)庫查詢和數(shù)據(jù)篩選中,經(jīng)常需要根據(jù)時間范圍進行數(shù)據(jù)過濾和查詢。使用上月、本月、本季度、上季度和年度的開始和結束時間可以方便地構建查詢條件,從而獲取符合時間范圍要求的數(shù)據(jù)。
優(yōu)點:
方便:使用上月、本月、本季度、上季度和年度的開始和結束時間,可以方便地獲取相應的時間范圍,避免手動計算和輸入時間范圍的麻煩。
精確:根據(jù)當前日期動態(tài)計算時間范圍,確保獲取的時間范圍準確無誤。
可復用:封裝成方法后,可以在不同的場景中反復使用,提高代碼的復用性和效率。
缺點:
依賴于系統(tǒng)時間:獲取的時間范圍依賴于系統(tǒng)時間,如果系統(tǒng)時間不準確或被修改,可能會導致獲取的時間范圍不準確。
邏輯復雜性:計算上月、本月、本季度、上季度和年度的開始和結束時間涉及一定的邏輯復雜性,需要考慮月份和季度的邊界情況,可能需要處理一些特殊情況的邏輯。
綜上所述,上月、本月、本季度、上季度和年度的開始和結束時間在數(shù)據(jù)分析、報表生成和業(yè)務邏輯計算等場景中非常有用,可以方便地獲取對應的時間范圍。但需要注意系統(tǒng)時間的準確性和處理邏輯復雜性。
到此這篇關于JavaScript實現(xiàn)獲取年月日時間的方法總結的文章就介紹到這了,更多相關JavaScript獲取時間內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
javascript中通過arguments參數(shù)偽裝方法重載
面向?qū)ο蟮母呒壵Z言中,都有方法的重載,在js中可以通過arguments這個參數(shù)來偽裝成函數(shù)重載,具體如下2014-10-10javascript讓setInteval里的函數(shù)參數(shù)中的this指向特定的對象
話說阿里巴巴今年的校園招聘有一道題目考了一個知識點,那就是setInterval的參數(shù)函數(shù)里的this指向.2010-01-01