微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在特定时区格式化日期

如何解决在特定时区格式化日期

正如Manto的回答中所指出的,.utcOffset()从 Moment 2.9.0 开始是首选方法。此函数使用与 UTC 的实际偏移量,而不是反向偏移量(例如,DST 期间的纽约为 -240)。像“+0400”这样的偏移字符串的工作方式和以前一样:

// always "2013-05-23 00:55"
moment(1369266934311).utcOffset(60).format('YYYY-MM-DD HH:mm')
moment(1369266934311).utcOffset('+0100').format('YYYY-MM-DD HH:mm')

Moment.js 2.9.0中 * __

// always "2013-05-23 00:55"
moment(1369266934311).zone(-60).format('YYYY-MM-DD HH:mm')
moment(1369266934311).zone('+0100').format('YYYY-MM-DD HH:mm')

要使用命名时区而不是数字偏移量,请包含Moment Timezone.tz()改用:

// determines the correct offset for America/Phoenix at the given moment
// always "2013-05-22 16:55"
moment(1369266934311).tz('America/Phoenix').format('YYYY-MM-DD HH:mm')

解决方法

我正在使用Moment.js在我的网络应用程序中解析和格式化日期。作为 JSON
对象的一部分,我的后端服务器以 UTC 纪元(Unix 偏移量)的毫秒数发送日期。

解析 特定时区中的 日期很容易——只需在解析之前将 RFC 822 时区标识符附加到字符串的末尾:

// response varies according to your timezone

const m1 = moment('3/11/2012 13:00').utc().format("MM/DD HH:mm")



// problem solved,always "03/11 17:00"

const m2 = moment('3/11/2012 13:00 -0400').utc().format("MM/DD HH:mm")



console.log({ m1,m2 })


<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>

但是如何 在特定时区 格式化日期?

无论浏览器的当前时间如何,我都想要一致的结果,但我不想以 UTC 显示日期。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。