在不进行时区转换的情况下使用MomentJs显示日期时间
有时我会在已调整为特定时区的网站的前端显示一个日期时间,并且我希望完全按原样显示它,而不考虑用户的时区。
例如,假设我有这样的日期:
2015-01-22T16:11:36.36-07:00
-07:00表示它在山间时间,MomentJs知道这一点,并会自动调整以适应其他时区的用户。例如,假设我用以下代码显示日期时间:
moment('2015-01-22T16:11:36.36-07:00').format('l LT')
用户在中部时间(-06:00)看到的时间是下午5:11,而不是下午4:11如何告诉MomentJs不要根据用户的时区进行调整并按原样显示日期时间?
解决方案
使用Moment的utc()
方法删除时区并以世界时显示所有内容。
moment.utc('2015-01-22T16:11:36.36-07:00').format('l LT')
这将显示没有任何时区偏移的UTC时间。如果要显示用户/服务器时区中记录的时间,可以在构造Moment实例时解析区域信息,并让它使用解析的字符串中记录的时区。
moment.parseZone('2015-01-22T16:11:36.36-07:00').format('l LT');
使用这两种方法中的任何一种,您都应该考虑以某种方式标记时间,以反映时间对应的时区。如果不这样做,可能会给最终用户带来很多困惑。
相关文章