始终使用UTC + 0 - 使用javascript/angularjs在客户端浏览器上修复自定义时区

Jér*_*lle 5 javascript date object angularjs

如何使用javascript在客户端浏览器上修复自定义时区?

例如,在角度上我从后台有一个日期"2015-10-16T00:00:00.000Z".

我希望有一个显示器(使用UTC-4纽约或UTC + 2法国),始终:16/10/2015

阅读:

如果我在纽约使用UTC,我有:2015年10月15日.

<p ng-bind="(myDate | date:'dd/MM/yyyy')"></p>
Run Code Online (Sandbox Code Playgroud)

写:

我将日期原型修改为JSON以删除时区:

// Remove TimeZone
Date.prototype.toJSON = function(){
    return moment(this).format('YYYY-MM-DD') + 'T00:00:00.000Z';
};
Run Code Online (Sandbox Code Playgroud)

Jér*_*lle 1

我添加了这个:

// Add timeZone
Date.prototype.addTimeZone = function () {
    if(this.getTimezoneOffset() > 0){
        this.setMinutes(this.getTimezoneOffset());
    }

    return this;
};
Run Code Online (Sandbox Code Playgroud)

这在我的控制器/模型上:

    new Date(myDate).addTimeZone();
Run Code Online (Sandbox Code Playgroud)

恢复 :

扩展日期原型.js

// Add timeZone
Date.prototype.addTimeZone = function () {
    if(this.getTimezoneOffset() > 0){
        this.setMinutes(this.getTimezoneOffset());
    }

    return this;
};

// Remove TimeZone
Date.prototype.toJSON = function(){
    return moment(this).format('YYYY-MM-DD') + 'T00:00:00.000Z';
};
Run Code Online (Sandbox Code Playgroud)

视图.html

<p ng-bind="(myDate | date:'dd/MM/yyyy')"></p>
Run Code Online (Sandbox Code Playgroud)

控制器.js

new Date(myDate).addTimeZone();
Run Code Online (Sandbox Code Playgroud)

我使用moment.js