2017-06-05 482 views
0

如何显示剩余时间,直到午夜,这样的时刻: 22小时48分钟时间:12秒Moment.js如何显示剩余天(与时区偏移)

为了使事情更加困难,这应显示在UTC + 2时区。 这是可能的简单的JavaScript或更容易与momentjs? 任何帮助表示赞赏!

+2

什么你试过这么远吗?请参阅[时间](http://momentjs.com/docs/#/durations/)。 – VincenzoC

+0

总是使用时区库的东西。这里有一个[伟大的视频](https://youtu.be/-5wpm-gesOY),解释你为什么不应该自己处理时区。 –

+0

@SumnerEvans据我所知moment.js是一个时区的东西和更多的图书馆;) – schrej

回答

1

let now = moment(); 
 
let timeDiff = moment(now).utcOffset(120).endOf('day') - now; 
 

 
let dur = moment.duration(timeDiff); 
 

 
console.log(`${dur.hours()} hrs ${dur.minutes()} min ${dur.seconds()} sec until midnight.`);
<script src="https://momentjs.com/downloads/moment.min.js"></script>

+0

像其他人一样,评论说,当涉及时区的东西,绝对更好地利用现有的,经过测试的库。不幸的是,JavaScript对于有用的日期时间操作的本地支持很弱 - 使用本机日期实现相同的事情会非常困难(并且容易出错)。 – nikulis

+0

此外,请考虑您是否总是希望UTC + 2,或者如果您实际上正在尝试针对特定时区,并根据夏令时等因素设置不同的偏移量等。 在这种情况下,您希望也可以使用片刻的可选时区库。 – nikulis