Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
始终使用UTC+;0-使用javascript/angularjs修复客户端浏览器上的自定义时区_Javascript_Angularjs_Date_Object - Fatal编程技术网

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

始终使用UTC+;0-使用javascript/angularjs修复客户端浏览器上的自定义时区,javascript,angularjs,date,object,Javascript,Angularjs,Date,Object,如何使用javascript在客户端浏览器上修复自定义时区 例如,在angular上,后台有一个日期“2015-10-16T00:00:00.000Z” 我想要一个显示器(纽约UTC-4或法国UTC+2),总是:2015年10月16日 阅读: 如果我在纽约使用UTC,我有:2015年10月15日 <p ng-bind="(myDate | date:'dd/MM/yyyy')"></p> 您可以使用获取客户端的偏移量,然后进行简单的数学运算 var dateToTran

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

例如,在angular上,后台有一个日期“2015-10-16T00:00:00.000Z”

我想要一个显示器(纽约UTC-4或法国UTC+2),总是:2015年10月16日

阅读:

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

<p ng-bind="(myDate | date:'dd/MM/yyyy')"></p>
您可以使用获取客户端的偏移量,然后进行简单的数学运算

var dateToTranslate = new Date("2015-10-16T00:00:00.000Z");
var timezoneOffset = dateToTranslate.getTimezoneOffset() * 60000;
var newDate = new Date(+dateToTranslate+timezoneOffset);
// Fri Oct 16 2015 00:00:00 GMT+0200 (CEST) in my browser
我补充说:

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

    return this;
};
在我的控制器/型号上:

    new Date(myDate).addTimeZone();
继续:

扩展日期原型.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';
};
new Date(myDate).addTimeZone();
view.html

<p ng-bind="(myDate | date:'dd/MM/yyyy')"></p>

我使用

您应该向我们展示一些代码。。。你是如何显示那个日期的?以欧洲的夏季为例,这是行不通的。在德国,冬季有UTC+1,夏季有UTC+2。因此,您也需要进行更改。
getTimezoneOffset
可能会返回不同的值,如果DSTchanges@molerat我更新了代码,不知道怎么会错过,我想应该没问题。
new Date(myDate).addTimeZone();