首页  >  问答  >  正文

使用 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 不调整用户的时区并按原样显示日期时间?

P粉952365143P粉952365143337 天前563

全部回复(2)我来回复

  • P粉520545753

    P粉5205457532023-10-18 17:34:27

    您可以使用utcOffset方法手动设置偏移量。< /p>

    moment().utcOffset(0, true).format()

    回复
    0
  • P粉066725148

    P粉0667251482023-10-18 11:31:31

    使用 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');

    使用这两种方法中的任何一种,您都应该考虑以某种方式标记时间以反映时间对应的时区。如果不这样做可能会给最终用户带来很多困惑。

    回复
    0
  • 取消回复