【问题标题】:Setting up conditionals with moment.js使用 moment.js 设置条件
【发布时间】:2022-01-14 20:10:23
【问题描述】:

我正在使用 momentJS 来解析我的应用程序中的日期和时间,但是在尝试设置时间条件时遇到了问题。

例如:我需要验证一个字段,我需要该字段的时间在另一个字段的时间之前不超过 30 分钟(这是航空实践,飞行员需要验证他的存在不超过 30发动机启动前几分钟)。

我尝试使用时间限制和 IsAfter 查询设置一个 var,但我不断得到重复时间,而不是“时间 -30 分钟”的期望结果。这是代码。

var firstTime = new moment(
  this._dateTimeToDateSQL(
    this.form.acionamento,
    $sessao.getDateFormat() + ' HH:MM'
  )
)

var secondTime = new moment(
  this._dateTimeToDateSQL(
    this.form.tripulacao[0].apresentacao,
    $sessao.getDateFormat() + ' HH:MM'
  )
)

var timeLimit = moment(firstTime.subtract(30, 'minutes'))

if (moment(secondTime).isAfter(firstTime)) {
  this.form.tripulacao[0].err = 'error'
  pass = false
} else if (moment(secondTime).isAfter(timeLimit)) {
  this.form.tripulacao[0].err =
    'time limit reached'
  pass = false
} else {
  this.form.tripulacao[0].err = ''
}

【问题讨论】:

    标签: javascript momentjs


    【解决方案1】:

    试试:

    var timeLimit = moment(firstTime).subtract(30, 'minutes');
    

    代替:

    var timeLimit = moment(firstTime.subtract(30, 'minutes'));
    

    似乎对我有用: http://jsfiddle.net/x6q5br7k/6/

    (检查控制台以查看日期差异)

    let now        = new Date(),
        firstTime  = moment(new Date(now.getTime() + 60 * 60000)), // now plus an hour
        secondTime = moment(now),                                  // now
        timeLimit  = moment(firstTime).subtract(30, 'minutes');    // 30 minutes from now
        
    console.log(
        "firstTime:"  + firstTime.toString(), 
        "secondTime:" + secondTime.toString(), 
        "timeLimit:"  + timeLimit.toString()
    )
    
    alert(
        moment(secondTime).isAfter(firstTime)
            ? 'error'
            : moment(secondTime).isAfter(timeLimit)
                ? 'time limit reached'
                : ''
    );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-09
      • 2016-04-18
      • 2017-02-11
      • 1970-01-01
      • 2020-02-11
      • 2017-01-14
      • 2016-07-06
      • 2012-01-11
      相关资源
      最近更新 更多