【问题标题】:Extract time in momentjs object to use with inBetween function在 momentjs 对象中提取时间以与 inBetween 函数一起使用
【发布时间】:2019-07-01 17:21:28
【问题描述】:

我想获取当前时间并在我的条件 if 语句中使用它来查看它是否在一组时间之间。我尝试使用moment().isBetween(nine, ten),其中 9 和 10 是字符串(就像它在文档中所说的那样),但 moment() 也会返回当天。我也尝试过moment().format("hh:mm A").isBetween(nine, ten),但格式将所有内容都转换为字符串,显然不能使用 isBetween。如何提取当前时间并在 isBetween 中使用它?如果在 vanilla JS 中使用 Date 对象更容易,我会全力以赴。

// what I've tried. example 1
let nine = "9:00"
let nineFormat = moment(nine, "HH:mm A").format("hh:mm A");
let ten = "10:00"
let tenFormat = moment(ten, "HH:mm A").format("hh:mm A");

if(moment().isBetween(nineFormat,tenFormat){
     console.log("I'm here");
}

//I've also tried but doesn't work because test is a string. example 2
let test = moment().format("hh:mm A");

if(test.isBetween(nineFormat,tenFormat){
     console.log("I'm here");
} 

这是我得到的错误,例如 1

弃用警告:提供的值不是可识别的 RFC2822 或 ISO 格式。 moment 构造回退到 js Date(),这在所有浏览器和版本中并不可靠。不鼓励使用非 RFC2822/ISO 日期格式,并将在即将发布的主要版本中删除。请参阅http://momentjs.com/guides/#/warnings/js-date/ 了解更多信息。 论据: [0] _isAMomentObject: true, _isUTC: false, _useUTC: false, _l: undefined, _i: 09:00 AM, _f: undefined, _strict: undefined, _locale: [object Object] 错误

【问题讨论】:

标签: javascript momentjs


【解决方案1】:

您忘记了右括号:if(moment().isBetween(nineFormat,tenFormat){ 应该是 if(moment().isBetween(nineFormat,tenFormat)){

您也不应该格式化传递给 isBetween 的日期,或者至少将它们格式化为标准 ISO 字符串。

let nine = moment("9:00", "HH:mm A");
let ten = moment("10:00", "HH:mm A");

if (moment().isBetween(nine, ten)) {
     console.log("I'm here");
}

【讨论】:

    猜你喜欢
    • 2020-12-12
    • 1970-01-01
    • 1970-01-01
    • 2020-09-11
    • 2013-01-26
    • 2017-09-27
    • 2021-12-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多