AngularJS $ filter(' date')为结果增加了时间

时间:2016-03-17 14:08:34

标签: 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这是怎么回事?

1 个答案:

答案 0 :(得分:3)

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

  

设置日期时,不指定时区,JavaScript   将使用浏览器的时区。换句话说:如果日期/时间是   在格林威治标准时间(格林威治标准时间)创建,日期/时间将被转换   如果用户从美国中部浏览,则到CDT(美国中部夏令时)。

您发生的事情是,您的时间正在转换为浏览器的时区,并假设您将时间设置为GMT。

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