在最近的教學(xué)中,我們學(xué)習(xí)如何取得和設(shè)定任何 Date
物件的月、日、年和時間的值。獲取和設(shè)定這些日期值的能力在許多情況下都會派上用場。例如,您可以將特殊事件的日期儲存在變數(shù)中。您也可以使用這些方法來顯示目前日期和時間或?qū)σ欢螘r間進(jìn)行加減操作。
在本教程中,我們的重點(diǎn)將是學(xué)習(xí)如何從指定日期添加或減去一段時間,例如年、月、日、小時和分鐘。
如何為日期新增年、月和日
您可能還記得我們的其他教學(xué)課程中,JavaScript 具有setFullYear()
和getFullYear()
等方法,您可以使用它們來設(shè)定和取得特定日期的目前全年。您可以使用 setMonth()
和 getMonth()
等方法來設(shè)定和取得特定日期的當(dāng)前月份。同樣,您可以使用 setDate()
和 getDate()
方法來設(shè)定和取得月份中的日期。
讓我們寫一個函數(shù),為日期新增年份。它將接受您想要新增的日期和年數(shù)作為其參數(shù)並傳回新日期。
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);
這裡需要注意的重要一點(diǎn)是使用 Date()
建構(gòu)函式建立一個新的 Date
對象,該物件被指派給變數(shù) new_date
。只需將 new_date
的值設(shè)為給定的 date
就會導(dǎo)致它們都指向同一個 Date
物件。
我們將使用相同的邏輯建立 addMonthsToDate()
函數(shù),該函數(shù)接受日期和要新增的月數(shù)作為參數(shù)並傳回新日期。
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()
方法遇到的任何溢出都會導(dǎo)致給定日期添加適當(dāng)?shù)哪陻?shù)。這就是我們將日期加上 50 個月後所發(fā)生的情況。它使我們的約會日期增加了 4 年 2 個月。
現(xiàn)在,讓我們寫一個函數(shù),將給定的天數(shù)加到我們指定的日期並傳回一個新日期:
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);
在我們的日期中添加任何時間段
我們定義了三個新函數(shù),讓我們在 JavaScript 中為給定日期新增年、月或日。您可能想要在日期中添加一些其他時間段或持續(xù)時間,例如小時、分鐘或秒。為它們再寫三個函數(shù)是沒有意義的。
以下函數(shù)可用來將任意時間段新增至指定日期:
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);
如您所見,上述函數(shù)會為您處理任何溢出問題。也無需為所有時間單位提供值,因?yàn)轭A(yù)設(shè)情況下它們設(shè)定為 0。這意味著我們可以簡單地傳遞我們想要添加的天數(shù)和秒數(shù),同時跳過所有其他值。
從我們的日期中減去任何時間段
我們不需要寫任何單獨(dú)的函數(shù)來從日期中減去任意時間段。您可以使用上一節(jié)的函數(shù)來減去年、月、日、小時、分鐘或秒。您需要做的就是提供該期間的負(fù)值。以下是一些範(fàn)例:
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);
最終想法
在本教學(xué)中,我們學(xué)習(xí)了兩種不同的方法來解決 JavaScript 中日期加減年、月、日等問題。如果您只想添加或減去年份,您可以考慮創(chuàng)建一個像 addYearsToDate()
這樣的函數(shù),專門簡單地執(zhí)行此操作。另一種方法是建立一個更通用的 addPeriodToDate()
函數(shù),它可以處理不同的時間單位。
以上是Vanilla JavaScript:從日期中添加或減去天數(shù)(以及更多)的詳細(xì)內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費(fèi)脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

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

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

使用Git管理WordPress項(xiàng)目時,應(yīng)只將主題、自定義插件和配置文件納入版本控制;設(shè)置.gitignore文件以忽略上傳目錄、緩存和敏感配置;利用webhook或CI工具實(shí)現(xiàn)自動部署並註意數(shù)據(jù)庫處理;採用兩分支策略(main/develop)進(jìn)行協(xié)作開發(fā)。這樣做可避免衝突、保障安全,並提升協(xié)作與部署效率。

使用WordPress測試環(huán)境是為了確保新功能、插件或主題在正式上線前的安全性和兼容性,避免影響真實(shí)網(wǎng)站。搭建測試環(huán)境的步驟包括:下載安裝本地服務(wù)器軟件(如LocalWP、XAMPP),創(chuàng)建站點(diǎn)、設(shè)置數(shù)據(jù)庫和管理員賬號,安裝主題和插件進(jìn)行測試;複製正式網(wǎng)站到測試環(huán)境的方法是通過插件導(dǎo)出站點(diǎn)、導(dǎo)入測試環(huán)境並替換域名;使用時應(yīng)注意不使用真實(shí)用戶數(shù)據(jù)、定期清理無用數(shù)據(jù)、備份測試狀態(tài)、適時重置環(huán)境,並統(tǒng)一團(tuán)隊配置以減少差異問題。

創(chuàng)建Gutenberg塊的關(guān)鍵在於理解其基本結(jié)構(gòu)並正確連接前後端資源。 1.準(zhǔn)備開發(fā)環(huán)境:安裝本地WordPress、Node.js和@wordpress/scripts;2.使用PHP註冊塊並用JavaScript定義塊的編輯和顯示邏輯;3.通過npm構(gòu)建JS文件以使更改生效;4.遇到問題時檢查路徑、圖標(biāo)是否正確或使用實(shí)時監(jiān)聽構(gòu)建避免重複手動編譯。按照這些步驟,可以逐步實(shí)現(xiàn)一個簡單的Gutenberg塊。

在WordPress中,當(dāng)新增自定義文章類型或修改固定鏈接結(jié)構(gòu)後,需手動刷新重寫規(guī)則,此時可通過代碼調(diào)用flush_rewrite_rules()函數(shù)實(shí)現(xiàn)。 1.可在主題或插件激活鉤子中添加該函數(shù)以自動刷新;2.僅在必要時執(zhí)行一次,如添加CPT、分類法或修改鏈接結(jié)構(gòu)後;3.避免頻繁調(diào)用以免影響性能;4.多站點(diǎn)環(huán)境下需視情況為每個站點(diǎn)單獨(dú)刷新;5.某些託管環(huán)境可能限制規(guī)則保存。此外,訪問“設(shè)置>固定鏈接”頁麵點(diǎn)擊保存也可觸髮刷新,適合非自動化場景。

tosetupredirectsinwordpressingthe.htaccessfile,locateThEfileInyourSite'sRootDirectorectoryAndDrectRectrulesabovethe#beginWordPresssection.forbasic301redirects,USETHEETHEETERECTREFTATRECTATREDERTREFTATREDERTREFTATRECTRECTATRECTRECTATREDECT301/OLD-PAGEHTTPS:

要實(shí)現(xiàn)響應(yīng)式WordPress主題設(shè)計,首先要使用HTML5和移動優(yōu)先的Meta標(biāo)籤,在header.php中添加viewport設(shè)置以確保移動端正確顯示,並用HTML5結(jié)構(gòu)標(biāo)籤組織佈局;其次,利用CSS媒體查詢實(shí)現(xiàn)不同屏幕寬度下的樣式適配,按移動優(yōu)先原則編寫樣式,常用斷點(diǎn)包括480px、768px和1024px;第三,彈性處理圖片和佈局,為圖片設(shè)置max-width:100%並使用Flexbox或Grid佈局替代固定寬度;最後,通過瀏覽器開發(fā)者工具和真實(shí)設(shè)備進(jìn)行充分測試,優(yōu)化加載性能,確保響應(yīng)

UsingsMtpForWordPresseMailSimProvesDeliverabilitialComparedComparedTothEdeDefaultPhpMail()函數(shù).1.smtpauthenticateswithyouremailserver.2.somemomehostsdisablesablephpmail()

TOINTEGRATETHIRD-PARTYAPISINTOWORDPRESS,關(guān)注臺詞:1.SelectAutableabepianDobtainCredentialslikeapikeYsoroAuthtoKensByEnterRegisteringThemSecure.2.ChooseBeteBetB????eteBetB????eteBetB????etebetInpliCityOorcustimplicityOrcustomPliCoseTompliCoseTomploomcoseusionfunctionfunctionfunctibunitiacuciencipuity forfunigation。
