javascript - 将任何类型的 javascript 日期时间变量转换为 moment JS 对象

标签 javascript angularjs datetime momentjs angular-moment

有没有一种方法可以检测/转换 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/

相关文章:

javascript - 每个数字周围的框

angularjs - 使用 Angular 1.2 设置和获取 cookie 中的对象

php - 在 PHP 和 MySQL 中确定和存储打卡时间的最佳方法

perl - 时区应该是常量还是变量?

Python - 检查今天是否创建了文件

javascript - 外部js脚本

javascript - jQuery 将动态单元格添加到表中的静态单元格

javascript - Ionic、PHP、MySQL 和 JSONP 与 Angular

angularjs - 在不使用 Angular 范围或 Controller 的情况下插入日期

javascript - 获取 URL 的文件名和父文件夹