我正在使用 moment.js。我想限制用戶兒子他只能選擇從當前日期到 50 年前的日期。簡而言之,我只希望用戶的出生日期不能超過 50 年。因此,從當前日期開始,應該只存在 50 年之前的范圍。我該怎么做?請指導我。
uj5u.com熱心網友回復:
所以你必須先計算 50 年前的日期 https://momentjs.com/docs/#/manipulating/subtract/
fiftyYearsBackDate = moment().subtract(50, "years")
獲取用戶選擇的日期
userDate = new Date()
從中創建矩物件并查詢 https://momentjs.com/docs/#/query/is-after/
moment(userDate).isAfter(fiftyYearsBackDate)
這將回傳boolean可用于顯示錯誤訊息的資訊。
uj5u.com熱心網友回復:
您想要計算difference從現在到生日之間的年數,并檢查它是否大于 50。
const birthDate = '1970-01-01'
const yearsDiff = moment().diff(birthDate, 'years');
如果你想得到十進制的年差:
const yearsDiff = moment().diff(birthDate, 'years', true);
將yearsDiff 包含差異,因此您可以對其進行if檢查以查看它是否大于 50。
官方檔案:https ://momentjs.com/docs/#/displaying/difference/
uj5u.com熱心網友回復:
通過使用 moment js,您可以像這樣輕松獲得過去和未來的日期 -
const past = moment().subtract(50, 'years'); // To past
const future = moment().add(50, 'years'); // Back to future
最后
const today = moment();
moment(today).isAfter(past, 'year'); // return: true || false
參考站點 URL 是 - https://everyday.codes/javascript/how-to-format-date-in-javascript-with-moment-js/
uj5u.com熱心網友回復:
如果沒有 moment.js,你可以測驗生日是否小于今天減去 50 年:
birthdate < new Date().setFullYear(new Date().getFullYear() - 50);
使用示例:
let testDates = [
new Date(1970,0,1), // 1 Jan 1970
new Date(2000,0,1) // 1 Jan 2000
].forEach(date => console.log(
`More than 50 years ago?\n`
`${date.toDateString()}: ${date < new Date().setFullYear(new Date().getFullYear() - 50)}`
));
唯一要檢查的行為是 2 月 29 日左右。有些地方在非閏年將生日移至 2 月 28 日,而另一些地方則移至 3 月 1 日。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/537805.html
