有没有一种方法可以检测/转换 UTC 或 Moment JS 对象或 Date()
对象或包含 datetime
的纯字符串的类型/格式的传入变量>、Moment JS对象的通用格式?
示例:
"1509760983",
Date 2017-10-10T02:20:10.570Z,
Object { _isAMomentObject: true, _isUTC: false, _locale: Object, _d: Date 2017-11-04T02:17:33.747Z, _z: null },
"Sat, 04 Nov 2017 02:03:03 GMT",
"2017-11-04T02:20:14.896Z"
我的黑客:
var offset = moment().utcOffset();
momentObj = moment(variable).utcOffset(offset);
我能够将所有其他格式转换为 Moment JS,数据中没有任何“偏差”,除非变量已经是 Date()
对象。
var offset = moment().utcOffset();
momentObj = (variable instanceof Date) ? moment(variable) : moment(variable).utcOffset(offset);
注意:由于Date()
对象只能在浏览器中生成,因此不需要添加偏移量来将时间转换为本地时区。
此解决方案是否有更好的(自动防故障)方法?
最佳答案
JavaScript 日期“Z”的最后一个字符显示对象的时区设置为 UTC(Z 时间、祖鲁时间)。您正在获取正确的时区。如果你想将时区转换为本地时区,你应该使用 moment timezone plugin使用 moment.js。
那么你会这样做:
momentObj = moment(variable).tz(moment.tz.guess());
将所有时刻对象转换/设置为用户的时区。
关于javascript - 将任何类型的 javascript 日期时间变量转换为 moment JS 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47106969/