【问题标题】:How to convert hours and minutes to minutes with moment.js?如何使用 moment.js 将小时和分钟转换为分钟?
【发布时间】:2021-11-06 22:16:06
【问题描述】:

我需要将小时和分钟转换为分钟值。使用纯 JavaScript Date 对象,我执行以下操作:

var d = new Date();
var minutes = d.getHours() * 60 + d.getMinutes();

我刚刚切换到moment.js,正在寻找更好的解决方案,如下所示:

var minutes = moment(new Date()).toMinutes()

有这样的吗?

【问题讨论】:

    标签: javascript date momentjs


    【解决方案1】:

    我认为最好的办法是创建一个Duration,然后使用asMinutes 获取分钟。这在描述时间间隔时可能更清楚。

    moment.duration().asMinutes()
    

    Here is the reference 在文档中。

    【讨论】:

    • 是否可以在现有的时刻使用持续时间,像 moment(new Date()).duration().asMinutes() 这样的 js 对象?
    • 我认为这是可能的,但我自己没有尝试过。
    • 你很聪明!
    • @Erik 不,这是不可能的。你会得到: moment(...).duration 不是函数
    • 您需要将输入值作为参数放入duration函数中。比如 moment.duration(input_value).asMinutes()
    【解决方案2】:

    对于那些寻求从现有 Moment 对象获取分钟数的人,您可以先将其格式化为您需要的任何内容,然后使用 duration 以分钟为单位获取其持续时间:

    moment.duration(myMomentObjectToConvert.format("HH:mm")).asMinutes()
    

    【讨论】:

      【解决方案3】:

      你可以使用:

      var m = moment(new Date());
      var minutes = (m.hour()*60) + m.minute();
      

      http://momentjs.com/docs/#/get-set/minute/

      【讨论】:

      • @DavinTryon OP 所做的编辑现在有意义了。
      • moment() 等于 moment(new Date())
      【解决方案4】:
      const moment = require('moment')
      var date = new Date()
      console.log(date) // 2018-11-09T10:01:33.131Z
      
      // 1.
      console.log( 'object', moment(new Date()).toObject() )
      // { years: 2018,
      // months: 10,
      // date: 9,
      // hours: 13,
      // minutes: 1,
      // seconds: 33,
      // milliseconds: 135 }
      
      // 2.
      console.log( 'array', moment(new Date()).toArray() ) // array [ 2018, 10, 9, 13, 1, 33, 141 ]
      
      // 3.
      console.log( 'year', moment(new Date()).toObject().years ) // year 2018
      console.log( 'day of month', moment(new Date()).toObject().date ) // day of month 9
      console.log( 'hours', moment(new Date()).toObject().hours ) // hours 13
      console.log( 'minutes', moment(new Date()).toObject().minutes ) // minutes 1
      console.log( 'seconds', moment(new Date()).toObject().seconds ) // seconds 33
      console.log( 'milliseconds', moment(new Date()).toObject().milliseconds ) // milliseconds 139
      
      // 4.
      console.log( 'weeks', moment(new Date()).weeks() ) // weeks 45
      console.log( 'day of week', moment(new Date()).days() ) // day of week 5
      console.log( 'day of month', moment(new Date()).date() ) // day of month 9
      console.log( 'hours', moment(new Date()).hours() ) // hours 13
      console.log( 'minutes', moment(new Date()).minutes() ) // minutes 1
      console.log( 'seconds', moment(new Date()).seconds() ) // seconds 33
      console.log( 'milliseconds', moment(new Date()).milliseconds() ) // milliseconds 141
      

      【讨论】:

        【解决方案5】:

        我不需要 moment.js,至少适用于我的场景:

        console.log('converting 2 hours, 20 minutes and 120 seconds to minutes');
        
        var hours = 2,
          minutes = 20,
          seconds = 120,
          timeInminutes = (hours * 60) + minutes + (seconds / 60);
        
        console.log('2 hours, 20 minutes and 120 seconds to minutes is', timeInminutes, ' minutes')

        【讨论】:

          【解决方案6】:

          只是为了简化—— '07:07:00' 是 HH:mm:ss 格式,这将在几分钟内转换

          moment.duration('07:07:00').asMinutes()

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2015-07-20
            • 2012-01-23
            • 2011-02-14
            • 1970-01-01
            • 1970-01-01
            • 2015-05-18
            • 2021-02-22
            • 1970-01-01
            相关资源
            最近更新 更多