所以,我有兩個變數和一個函式:
function addDays(date, days) {
var result = new Date(date);
result.setDate(result.getDate() days);
return result;
}
const dateToCompare=moment.utc(endDate).format('DD-MM-YYYY')
const maximum=moment.utc(addDays(new Date(),14)).format('DD-MM-YYYY')
但是,我不知道如何比較它們,因為它們現在被格式化為字串,但同時 new Date(dateToCompare) 不起作用。
有人可以給我一個提示嗎?
uj5u.com熱心網友回復:
如果您要做的是去掉時間并只比較日期,請不要進行字串轉換;在進行日期比較之前,只需將 Date 物件上的小時、分鐘和秒設定為零。
let foo = new Date();
console.log(foo);// date includes time
foo.setHours(0); foo.setMinutes(0); foo.setSeconds(0);
console.log(foo) // date set to midnight (in your timezone)
uj5u.com熱心網友回復:
為什么在使用 moment.js 時使用內置方法來添加天數?考慮:
let maximum = moment.utc().add('day',14).format('DD-MM-YYYY')
要將日期設定為一天的開始,請使用 moment.js startOf方法:
let maximum = moment.utc().add('day',14).startOf('day')
let dateToCompare = moment.utc(endDate).startOf('day')
如果格式為 YYYY-MM-DD,您可以將日期作為字串進行比較,或者將它們保留為時刻物件并使用isSame、isAfter、isSameOrBefore等進行比較。
決議字串時:
const dateToCompare=moment.utc(endDate)
除非endDate是 Date 或 moment 物件,否則您應該始終傳遞要決議的格式。new Date(dateToCompare)不起作用,因為為什么 Date.parse 給出不正確的結果?
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/327948.html
標籤:javascript 日期 日期格式
