Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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
Javascript 在ie9文档模式下,angularjs中的时区不正确_Javascript_Date_Angularjs_Datetime_Timezone - Fatal编程技术网

Javascript 在ie9文档模式下,angularjs中的时区不正确

Javascript 在ie9文档模式下,angularjs中的时区不正确,javascript,date,angularjs,datetime,timezone,Javascript,Date,Angularjs,Datetime,Timezone,我正在从服务器检索日期时间,如下所示: "created":"2013-07-22T22:00:48.860" 在我的html中,我使用以下有角度的语句: {{createdDateTimeShortString(currentEvent.created) | date:'M/d H:mm'}} 在我的控制器中,我有以下功能: $scope.createdDateTimeShortString = function (date) { if (!date) {

我正在从服务器检索日期时间,如下所示:

"created":"2013-07-22T22:00:48.860"
在我的html中,我使用以下有角度的语句:

{{createdDateTimeShortString(currentEvent.created) | date:'M/d H:mm'}}
在我的控制器中,我有以下功能:

  $scope.createdDateTimeShortString = function (date) {
        if (!date) {
            return false;
        }
        var dtime = new Date(date);
        return dtime;
    };
这正是我在chrome、firefox和ie10中所期望的。 但当我切换到IE9文档模式时,我所有的约会时间都会减少4个小时。 只有文档模式中的更改才能执行此操作。如果我处于IE9浏览器模式,但处于标准文档模式,那么我将获得预期的时间

这是怎么回事?有没有办法解决这一问题,使其在所有浏览器/模式下都能正常工作

您的日期是格式的,这很好。不过,这种格式有多种变体

当您将输入指定为
2013-07-22T22:00:48.860
时,时区不是数据的一部分,因此可以对其进行解释。有些浏览器可以将其视为UTC,有些人可能认为它是正在运行的计算机的本地时间。 相反,你应该是具体的。如果时间以UTC为单位,则在字符串末尾添加一个
Z
,例如
2013-07-22T22:00:48.860Z


如果您的时间位于特定时区,则应提供当时生效的相应时区偏移量。例如,如果您的时间在美国东部时区,那么此时将比UTC晚4小时,因此您可以指定为
2013-07-22T22:00:48.860-04:00

好建议,谢谢。如果我无法控制服务器部分,但我知道时间是UTC,该怎么办。我如何用客户端代码来克服这个问题?当你最初在JavaScript代码中被解析时,你可以尝试在字符串末尾添加一个<代码> z 。你也可以考虑使用。有了它,你可以说
moment(yourLocalDate)
,或者
moment.utc(yourUtcDate)
加上Z似乎是可行的——IE9给出的日期与其他浏览器一致。我认为现在的问题是,我所有的约会时间都比我认为应该的时间推迟了4个小时。谢谢您的帮助。请尝试
时刻(d).toISOString()
时刻(d).utc().format()
。但是,请再次确保您知道来自服务器的数据是UTC还是其他数据。你不想猜测。我也不太清楚你说的这些引语是什么意思。也许你应该问一个新问题,确切地说明你现在在做什么。