将任何类型的 javascript datetime 变量转换为 moment JS 对象
To convert any type of javascript datetime variable to moment JS object
有没有办法 detect/convert UTC 或 Moment JS 对象 type/format 的传入变量或 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);
我能够在数据中没有任何 "deviation" 的情况下将所有其他格式转换为 Moment JS,除非变量已经是 Date()
对象。
var offset = moment().utcOffset();
momentObj = (variable instanceof Date) ? moment(variable) : moment(variable).utcOffset(offset);
注意:由于Date()
对象只能在浏览器中生成,所以不需要添加偏移量将时间转换为本地时区。
这个解决方案有更好的(故障安全)方法吗?
javascript 日期的最后一个字符 "Z" 表明对象的时区设置为 UTC(Z 时间,zulu 时间)。您正在获得正确的时区。如果你想将时区转换为本地时区,你应该使用 moment timezone plugin 和 moment.js。
那么你会做:
momentObj = moment(variable).tz(moment.tz.guess());
到convert/set所有时刻对象到用户的时区。
有没有办法 detect/convert UTC 或 Moment JS 对象 type/format 的传入变量或 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);
我能够在数据中没有任何 "deviation" 的情况下将所有其他格式转换为 Moment JS,除非变量已经是 Date()
对象。
var offset = moment().utcOffset();
momentObj = (variable instanceof Date) ? moment(variable) : moment(variable).utcOffset(offset);
注意:由于Date()
对象只能在浏览器中生成,所以不需要添加偏移量将时间转换为本地时区。
这个解决方案有更好的(故障安全)方法吗?
javascript 日期的最后一个字符 "Z" 表明对象的时区设置为 UTC(Z 时间,zulu 时间)。您正在获得正确的时区。如果你想将时区转换为本地时区,你应该使用 moment timezone plugin 和 moment.js。
那么你会做:
momentObj = moment(variable).tz(moment.tz.guess());
到convert/set所有时刻对象到用户的时区。