如何将 Moment.js 日期转换为用户本地时区?

How to convert Moment.js date to users local timezone?(如何将 Moment.js 日期转换为用户本地时区?)
本文介绍了如何将 Moment.js 日期转换为用户本地时区?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用 Moment.js 和 Moment-Timezone 框架,并且有一个 Moment.js 日期对象,该对象明确使用 UTC 时区.如何将其转换为浏览器的当前时区?

I use the Moment.js and Moment-Timezone frameworks, and have a Moment.js date object which is explicitly in UTC timezone. How can I convert that to the current timezone of the browser?

var testDateUtc = moment.tz("2015-01-30 10:00:00", "UTC");var localDate = ???

所以如果我能找出用户的本地时区就好了;或者,我想将日期对象转换为另一个只使用本地时区"的数据对象,无论它实际上是什么.

So it would be fine if I could find out the users local time zone; or alternatively I'd like to convert the date object into another data object which just uses the "local timezone", no matter what that actually is.

推荐答案

您不需要为此使用 moment-timezone.主要的 moment.js 库具有使用 UTC 和本地时区的完整功能.

You do not need to use moment-timezone for this. The main moment.js library has full functionality for working with UTC and the local time zone.

var testDateUtc = moment.utc("2015-01-30 10:00:00");
var localDate = moment(testDateUtc).local();

从那里您可以使用您可能期望的任何功能:

From there you can use any of the functions you might expect:

var s = localDate.format("YYYY-MM-DD HH:mm:ss");
var d = localDate.toDate();
// etc...

请注意,通过将 testDateUtc(它是一个 moment 对象)传回 moment() 构造函数,它会创建一个 克隆.否则,当您调用 .local() 时,它也会更改 testDateUtc 值,而不仅仅是 localDate 值.时刻是可变的.

Note that by passing testDateUtc, which is a moment object, back into the moment() constructor, it creates a clone. Otherwise, when you called .local(), it would also change the testDateUtc value, instead of just the localDate value. Moments are mutable.

另外请注意,如果您的原始输入包含时区偏移量,例如 +00:00Z,那么您可以直接使用 moment 解析它.您不需要使用 .utc.local.例如:

Also note that if your original input contains a time zone offset such as +00:00 or Z, then you can just parse it directly with moment. You don't need to use .utc or .local. For example:

var localDate = moment("2015-01-30T10:00:00Z");

这篇关于如何将 Moment.js 日期转换为用户本地时区?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Update another component when Formik form changes(当Formik表单更改时更新另一个组件)
Formik validation isSubmitting / isValidating not getting set to true(Formik验证正在提交/isValiating未设置为True)
React Validation Max Range Using Formik(使用Formik的Reaction验证最大范围)
Validation using Yup to check string or number length(使用YUP检查字符串或数字长度的验证)
Updating initialValues prop on Formik Form does not update input value(更新Formik表单上的初始值属性不会更新输入值)
password validation with yup and formik(使用YUP和Formick进行密码验证)