在最近的教學中,我們學習如何取得和設定任何 Date
物件的月、日、年和時間的值。獲取和設定這些日期值的能力在許多情況下都會派上用場。例如,您可以將特殊事件的日期儲存在變數中。您也可以使用這些方法來顯示目前日期和時間或對一段時間進行加減操作。
在本教程中,我們的重點將是學習如何從指定日期添加或減去一段時間,例如年、月、日、小時和分鐘。
如何為日期新增年、月和日
您可能還記得我們的其他教學課程中,JavaScript 具有setFullYear()
和getFullYear()
等方法,您可以使用它們來設定和取得特定日期的目前全年。您可以使用 setMonth()
和 getMonth()
等方法來設定和取得特定日期的當前月份。同樣,您可以使用 setDate()
和 getDate()
方法來設定和取得月份中的日期。
讓我們寫一個函數,為日期新增年份。它將接受您想要新增的日期和年數作為其參數並傳回新日期。
function addYearsToDate(date, years) { let new_date = new Date(date); new_date.setFullYear(new_date.getFullYear() + years); return new_date; } let today = new Date(); let five_years_later = addYearsToDate(today, 5); // Outputs: Date Wed Jun 07 2023 19:04:56 GMT+0530 (India Standard Time) console.log(today); // Outputs: Date Wed Jun 07 2028 19:04:56 GMT+0530 (India Standard Time) console.log(five_years_later);
這裡需要注意的重要一點是使用 Date()
建構函式建立一個新的 Date
對象,該物件被指派給變數 new_date
。只需將 new_date
的值設為給定的 date
就會導致它們都指向同一個 Date
物件。
我們將使用相同的邏輯建立 addMonthsToDate()
函數,該函數接受日期和要新增的月數作為參數並傳回新日期。
function addMonthsToDate(date, months) { let new_date = new Date(date); new_date.setMonth(new_date.getMonth() + months); return new_date; } let today = new Date(); let five_months_later = addMonthsToDate(today, 5); let fifty_months_later = addMonthsToDate(today, 50); // Outputs: Date Wed Jun 07 2023 19:15:04 GMT+0530 (India Standard Time) console.log(today); // Outputs: Date Tue Nov 07 2023 19:15:04 GMT+0530 (India Standard Time) console.log(five_months_later); // Outputs: Date Sat Aug 07 2027 19:15:04 GMT+0530 (India Standard Time) console.log(fifty_months_later);
正如我在其他教程中提到的,setMonth()
方法遇到的任何溢出都會導致給定日期添加適當的年數。這就是我們將日期加上 50 個月後所發生的情況。它使我們的約會日期增加了 4 年 2 個月。
現在,讓我們寫一個函數,將給定的天數加到我們指定的日期並傳回一個新日期:
function addDaysToDate(date, days) { let new_date = new Date(date); new_date.setDate(new_date.getDate() + days); return new_date; } let today = new Date(); let five_days_later = addDaysToDate(today, 5); let thousand_days_later = addDaysToDate(today, 1000); // Outputs: Date Wed Jun 07 2023 19:29:12 GMT+0530 (India Standard Time) console.log(today); // Outputs: Date Wed Jun 07 2023 19:29:12 GMT+0530 (India Standard Time) console.log(five_days_later); // Outputs: Date Wed Jun 07 2023 19:29:12 GMT+0530 (India Standard Time) console.log(thousand_days_later);
在我們的日期中添加任何時間段
我們定義了三個新函數,讓我們在 JavaScript 中為給定日期新增年、月或日。您可能想要在日期中添加一些其他時間段或持續時間,例如小時、分鐘或秒。為它們再寫三個函數是沒有意義的。
以下函數可用來將任意時間段新增至指定日期:
function addPeriodToDate(date, {years = 0, months = 0, days = 0, hours = 0, minutes = 0, seconds = 0}) { let new_date = new Date(date); new_date.setFullYear(new_date.getFullYear() + years); new_date.setMonth(new_date.getMonth() + months); new_date.setDate(new_date.getDate() + days); new_date.setHours(new_date.getHours() + hours); new_date.setMinutes(new_date.getMinutes() + minutes); new_date.setSeconds(new_date.getSeconds() + seconds); return new_date; } let today = new Date(); // Outputs: Date Wed Jun 07 2023 20:18:24 GMT+0530 (India Standard Time) console.log(today); let period = {years: 1, months: 2, days: 3}; let new_date = addPeriodToDate(today, period); // Outputs: Date Sat Aug 10 2024 20:18:24 GMT+0530 (India Standard Time) console.log(new_date); period = {years: 4, months: 22}; new_date = addPeriodToDate(today, period); // Outputs: Date Sat Apr 07 2029 20:18:24 GMT+0530 (India Standard Time) console.log(new_date); period = {days: 4, seconds: 22}; new_date = addPeriodToDate(today, period); // Outputs: Date Sun Jun 11 2023 20:18:46 GMT+0530 (India Standard Time) console.log(new_date);
如您所見,上述函數會為您處理任何溢出問題。也無需為所有時間單位提供值,因為預設情況下它們設定為 0。這意味著我們可以簡單地傳遞我們想要添加的天數和秒數,同時跳過所有其他值。
從我們的日期中減去任何時間段
我們不需要寫任何單獨的函數來從日期中減去任意時間段。您可以使用上一節的函數來減去年、月、日、小時、分鐘或秒。您需要做的就是提供該期間的負值。以下是一些範例:
period = {years: -1, months: -2, days: -3}; new_date = addPeriodToDate(today, period); // Outputs: Date Mon Apr 04 2022 20:18:24 GMT+0530 (India Standard Time) console.log(new_date); period = {years: -4, months: -22}; new_date = addPeriodToDate(today, period); // Outputs: Date Mon Aug 07 2017 20:18:24 GMT+0530 (India Standard Time) console.log(new_date); period = {days: -4, seconds: -22}; new_date = addPeriodToDate(today, period); // Outputs: Date Sat Jun 03 2023 20:18:02 GMT+0530 (India Standard Time) console.log(new_date);
最終想法
在本教學中,我們學習了兩種不同的方法來解決 JavaScript 中日期加減年、月、日等問題。如果您只想添加或減去年份,您可以考慮創建一個像 addYearsToDate()
這樣的函數,專門簡單地執行此操作。另一種方法是建立一個更通用的 addPeriodToDate()
函數,它可以處理不同的時間單位。
以上是Vanilla JavaScript:從日期中添加或減去天數(以及更多)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

在 WordPress 網站上啟用評論功能,可以為訪客提供參與討論和分享反饋的平台。為此,請按照以下步驟操作:啟用評論:在儀錶盤中,導航至“設置”>“討論”,並選中“允許評論”複選框。創建評論表單:在編輯器中,單擊“添加塊”並蒐索“評論”塊,將其添加到內容中。自定義評論表單:通過設置標題、標籤、佔位符和按鈕文本來定制評論塊。保存更改:單擊“更新”以保存評論框並將其添加到頁面或文章中。

如何復制 WordPress 子站?步驟:在主站創建子站。在主站克隆子站。將克隆導入目標位置。更新域名(可選)。分開插件和主題。

在WordPress中創建自定義頁頭的步驟如下:編輯主題文件“header.php”。添加您的網站名稱和描述。創建導航菜單。添加搜索欄。保存更改並查看您的自定義頁頭。

WordPress 網站中啟用評論功能:1. 登錄管理面板,轉到 "設置"-"討論",勾選 "允許評論";2. 選擇顯示評論的位置;3. 自定義評論表單;4. 管理評論,批准、拒絕或刪除;5. 使用 <?php comments_template(); ?> 標籤顯示評論;6. 啟用嵌套評論;7. 調整評論外形;8. 使用插件和驗證碼防止垃圾評論;9. 鼓勵用戶使用 Gravatar 頭像;10. 創建評論指

可以通過 WordPress 安裝 FTP 插件,配置 FTP 連接,然後使用文件管理器上傳源碼。步驟包括:安裝 FTP 插件、配置連接、瀏覽上傳位置、上傳文件、檢查上傳成功。

如何復制 WordPress 代碼?從管理界面複製:登錄 WordPress 網站,導航到目標位置,選擇代碼並按 Ctrl C (Windows)/Command C (Mac) 複製代碼。從文件複製:使用 SSH 或 FTP 連接到服務器,導航到主題或插件文件,選擇代碼並按 Ctrl C (Windows)/Command C (Mac) 複製代碼。

WordPress 錯誤解決指南:500 內部服務器錯誤:禁用插件或檢查服務器錯誤日誌。 404 未找到頁面:檢查 permalink 並確保頁面鏈接正確。白屏死機:增加服務器 PHP 內存限制。數據庫連接錯誤:檢查數據庫服務器狀態和 WordPress 配置。其他技巧:啟用調試模式、檢查錯誤日誌和尋求支持。預防錯誤:定期更新 WordPress、僅安裝必要插件、定期備份網站和優化網站性能。

如何在 WordPress 中關閉評論?特定文章或頁面:在編輯器中取消選中“討論”下的“允許評論”。整個網站:在“設置”->“討論”中取消選中“允許發表評論”。使用插件:安裝 Disable Comments 等插件禁用評論。編輯主題文件:通過編輯 comments.php 文件移除評論表單。自定義代碼:使用 add_filter() 函數禁用評論。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

WebStorm Mac版
好用的JavaScript開發工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

記事本++7.3.1
好用且免費的程式碼編輯器