在 moment js 中将已知时区的时间转换为本地时区

苏拉吉

我正在尝试使用 Moment.js 将时间(单独时间)从已知时区转换为我的本地时区。

我编写了以下函数,并且得到invalidDate了输出。

const convertToLocalTime = (time, tz) => {

  const t = moment.tz(time, tz)
  const localTime = t.local()
}
  • time只是时间;没有任何日期,例如:10:06 am和,
  • tz 是一个时区字符串,例如: Europe/Berlin

我究竟做错了什么?

文森佐

请参阅在 Zone 中解析

moment.tz构造函数将所有相同的参数时刻构造,但使用的最后一个参数的时区标识符

由于您的输入 ( 10:06 am) 不是 ISO 8601/RFC 2822 识别格式(请参阅moment(String)文档),您必须传递格式参数,如moment(String, String).

这是一个实时示例:

const convertToLocalTime = (time, tz) => {
  const t = moment.tz(time, 'hh:mm a', tz)
  const localTime = t.local()
  return localTime;
}

const res = convertToLocalTime("10:06 am", 'Europe/Berlin');
console.log( res.format('hh:mm a') );
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.14/moment-timezone-with-data-2012-2022.min.js"></script>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章