在本文中,我們將討論如何使用 JavaScript 增加給定日期。首先我們來分析和理解這句話的意思。給定某個日期 x =“05-02-2023”,我們希望向該日期添加 y = 7 天并打印結果日期“12-02-2023”。作為人類,我們可以手動將 2 月 5 日加上 7 天并得到結果。但我們需要 JavaScript 來以編程方式完成此操作。
我們將在本文中討論一些技術來做到這一點。
使用 addDays() 函數
addDays 函數接受 2 個參數,分別是日期和要遞增的天數。在下面的代碼中,我們將在當前日期上添加 7 天,并將增加的日期打印到控制臺。
示例
function addDays(date, days) { // Function to add Days var result = new Date(date); result.setDate(result.getDate() + days); return result; } let date = new Date(); console.log("Current date is "+date); let incrementedDate = addDays(date, 7); console.log("Increment date is "+incrementedDate);
登錄后復制
輸出
Current date is Tue Mar 07 2023 11:38:38 GMT+0530 (India Standard Time) Increment date is Tue Mar 14 2023 11:38:38 GMT+0530 (India Standard Time)
登錄后復制
使用 setDate() 和 getDate() 函數
getDate 函數返回 1 到 31 之間的整數,表示該月中的第幾天。然后使用設置日期函數將變量的值設置為遞增日期。在這里,我們將在當前日期上添加 14 天并將結果顯示到控制臺。增加的天數將保存到同一變量“date”,因此不需要另一個變量。
示例
let date = new Date(); console.log("Current date is "+date); date.setDate(date.getDate()+14); console.log("Increment date is "+date);
登錄后復制
輸出
Current date is Tue Mar 07 2023 11:40:55 GMT+0530 (India Standard Time) Increment date is Tue Mar 21 2023 11:40:55 GMT+0530 (India Standard Time)
登錄后復制
用戶定義函數
在這里,我們將創建自己的函數,而不是使用任何內置函數來增加日期。我們首先從給定的日期中提取月份、月份和年份的日整數,并將它們分別存儲為變量 d、m 和 y。然后,我們將天數添加到 d 或 day 變量,然后在返回時將其轉換回日期格式。目前,此函數在添加超過 1 個月的天數方面功能有限,但最多可以修改或避免,因為存在內置函數。
示例
function AddDays(start,days){ var d=start.getDate(); var m=start.getMonth()+1; //getMonth returns the index of the month hence +1 is added var y=start.getYear(); //getYear returns the year minus 1900 in the current javascript version, hence 1900 is added to it below var newDate=m+"-"+(d+days)+"-"+(y+1900); return new Date(newDate); } today=new Date(); console.log("The date today is "+today); console.log("The date after 5 days is "+AddDays(today,5));
登錄后復制
輸出
The date today is Tue Mar 07 2023 11:43:02 GMT+0530 (India Standard Time) The date after 5 days is Sun Mar 12 2023 00:00:00 GMT+0530 (India Standard Time)
登錄后復制
僅添加工作日
人們可能經常會看到電子商務網站上使用天數的增量來顯示預計的交貨時間。周日通常無法提供此交貨時間。在計算預計交貨日期時,必須排除周日。也可以排除公共假期。
這里將介紹如何向當前日期添加 7 個工作日。
示例
function AddWorkingDays(start,days){ // retrieve the index of the start date var d=start.getDay(); var incrementby=days; if(d==0){ // 0 stands for Sunday, if current day is a Sunday then add 1 day incrementby++; } if (d + incrementby >= 6) { //Subtract days in current working week from working days var remainingWorkingDays = incrementby - (5 - d); //Add current working week's weekend incrementby += 2; if (remainingWorkingDays > 5) { //Add two days for every working week by finding out how many weeks are included incrementby += 2 * Math.floor(remainingWorkingDays / 5); //Exclude the final weekend if the remainingWorkingDays is a equal to an exact number of weeks if (remainingWorkingDays % 5 == 0) incrementby -= 2; } } start.setDate(start.getDate() + incrementby); return start; } var today=new Date(); console.log("Current date is "+today); console.log("8 working days later would be "+AddWorkingDays(today,8));
登錄后復制
輸出
Current date is Tue Mar 07 2023 11:45:58 GMT+0530 (India Standard Time) 8 working days later would be Fri Mar 17 2023 11:45:58 GMT+0530 (India Standard Time)
登錄后復制
結論
所有上述方法都允許您向給定日期添加天、月甚至年。添加工作日功能在業界很有用,電商平臺、外賣網站等都可以使用。除了這些方法之外,我們還可以利用Moment.js庫,但這會給工作帶來不必要的復雜性。程序。
以上就是在 JavaScript 中增加給定日期的詳細內容,更多請關注www.92cms.cn其它相關文章!