javascript - AngularJS $filter ('date' ) 增加了结果的时间

标签 javascript angularjs

我在 AngularJS 中进行了此设置

var input = '2015-08-04T06:00:00';
var format = 'yyyy MMM dd - HH:mm:ss';
return $filter('date')(new Date(input), format);

但是结果是 2015 Aug 04 - 08:00:00 而不是 2015 Aug 04 - 06:00:00 这是怎么回事?

最佳答案

您的问题不在于 AngularJS,而在于 JavaScript 对 new Date() 的使用。来自 w3schools 上的 JavaScript 文档:

When setting a date, without specifying the time zone, JavaScript will use the browser's time zone. In other words: If a date/time is created in GMT (Greenwich Mean Time), the date/time will be converted to CDT (Central US Daylight Time) if a user browses from central US.

您遇到的情况是,您的时间被转换为浏览器的时区,并假设您将时间设置为 GMT。

为了证明我的观点,请转到 w3schools 上的此测试程序页面并输入示例中的时间,您会看到显示的结果实际上是不同的。

关于javascript - AngularJS $filter ('date' ) 增加了结果的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36062998/

相关文章:

javascript - 跟踪 YouTube 观看历史

javascript - 为什么我不能将 <object/> 标签插入到 CKEditor4 中?

javascript - 如何隐藏 HTML 源代码中的元素?

angularjs - 在 ng-repeat block 中有条件地添加元素

javascript - 在 Angular 中的两个按钮之间切换类,但进行限制以防止同一按钮更改类

javascript - 在 <p> 中动态创建一个 <div>

javascript - 速度滚动动画 jQuery

javascript - 获取 Monaco Editor 的值(value)

javascript - 比较数组内的值、计算它们并合并表中的行

javascript - AngularJS 根据宽度动态改变高度