我如何找到两个 moment.unix() 之间的区别

How do I find a difference between two moment.unix()

我根据这样的时区转换 unix 时间戳:

var event_time = moment.unix(first_start).tz(timezone);

那我需要找出来:

  1. 如果 event_time 与今天 (moment()) 是同一天

  2. 如果今天和 event_time 相差小于或等于 30 分钟

  3. 否则return格式化event_time.format('HH:mm')

但事实证明我这样做总是错误的

moment.unix(event_time).tz(timezone).isSame(moment())

您需要为 isSame 指定时间分辨率。如果未给出时间分辨率,则 return 值表示日期相等。我想你正在寻找这样的东西?

if ( event_time.isSame(moment(), 'day') ) {
    // Stuff?
} else if( Math.abs(event_time.diff(moment().startOf('day'), 'minutes')) <= 30 ||
           Math.abs(event_time.diff(moment().endOf('day'), 'minutes')) <= 30) {
    // ... More stuff?
} else {
    return event_time.format('HH:mm')
}

来源:http://momentjs.com/docs/