我根据时区转换unix时间戳,如下所示:
var event_time = moment.unix(first_start).tz(timezone);
然后我需要找出:
如果event_time与今天同日(moment()
)
如果今天和event_time之间的差异小于或等于30分钟
否则返回格式化event_time.format('HH:mm'
)
但事实证明,我总是做错了
moment.unix(event_time).tz(timezone).isSame(moment())
答案 0 :(得分:2)
您需要为isSame指定时间分辨率。如果未给出时间分辨率,则返回值表示日期相等。我觉得你在找这样的东西?
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')
}