gpt4 book ai didi

javascript - 不向从 javascript Date 创建的对象添加分钟的时刻

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:30:02 25 4
gpt4 key购买 nike

我有一个方法接受带有时间的 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()subtract 改变原始时刻

add() :

Mutates the original moment by adding time.

subtract :

Mutates the original moment by subtracting time.

所以你必须使用clone()

此外,在最新版本的 moment 中,第一个参数是要加/减的时间量,第二个参数是表示要加/减时间的键的字符串

关于javascript - 不向从 javascript Date 创建的对象添加分钟的时刻,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51046913/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com