从Momentjs午夜开始的几分钟

时间:2014-08-05 01:59:13

标签: javascript datetime time momentjs

在纯JS中,this将是如何。

如何找出给定moment对象的午夜分钟数(不提取到Date)?

  • 必须考虑DST
  • 分钟应该四舍五入
  • 必须使用当地时间(不能转换为UTC)

2 个答案:

答案 0 :(得分:56)

// Your moment
var mmt = moment();

// Your moment at midnight
var mmtMidnight = mmt.clone().startOf('day');

// Difference in minutes
var diffMinutes = mmt.diff(mmtMidnight, 'minutes');

默认情况下,moment#diff将返回向下舍入的数字。如果需要浮点数,请将true作为第三个参数传递。在2.0.0之前,时刻#diff返回舍入的数字,而不是向下舍入的数字。

考虑这个伪代码,因为我还没有测试,看看差异是否考虑了DST。

答案 1 :(得分:3)

这就是我现在所拥有的:

    if (!moment.isMoment(mmt)) {
        return 0;
    }
    var hh = mmt.get('hour');
    var mm = mmt.get('minute');
    return hh*60 + mm;

我不确定它是否考虑了各种边缘情况;如果是这种情况,请发表评论,或提供替代答案。