我有一个方法,它接受带有时间的 javascript 日期作为输入,并确定当前日期和时间是否在 -30 分钟内。但是,当我在运行时调试它时,moment.add 似乎没有按预期工作几分钟。
function isWithinRange(myDate: Date){
// convert to Moment obj
let myMoment = moment(myDate);
let todayMoment = moment(new Date());
let myMomentOk = myMoment.isValid();
let todayOk = todayMoment.isValid();
// create range values
let preTime = myMoment.subtract('m', 30);
let postTime = myMoment.add('m', 30);
//check values are as expected
let localeTime = myDate.toLocaleString();]
let preLocale = preTime.toLocaleString();
let postLocale = postTime.toLocaleString();
let result = todayMoment.isBetween(preTime, postTime);
return result;
}
但是当我在运行时检查 localeTime、preLocale 和 postLocale 时间时,所有三个值都是相同的,“Tue Jun 26 2018 09:58:00 GMT-0400”。加减分钟语句没有影响。
我在这里错过了什么或做错了什么?
请注意,两者add() http://momentjs.com/docs/ and subtract http://momentjs.com/docs/#/manipulating/subtract/ 改变原始时刻.
add() http://momentjs.com/docs/:
通过添加时间来改变原始时刻。
subtract http://momentjs.com/docs/#/manipulating/subtract/:
通过减去时间来改变原始时刻。
所以你必须使用clone() https://momentjs.com/docs/#/parsing/moment-clone/
此外,在最新版本的 moment 中,第一个参数是加/减的时间量,第二个参数是表示的字符串您要添加的时间的关键
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)