aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/ng/filter/filters.js6
-rw-r--r--test/ng/filter/filtersSpec.js36
2 files changed, 25 insertions, 17 deletions
diff --git a/src/ng/filter/filters.js b/src/ng/filter/filters.js
index 3830e965..e03d59d7 100644
--- a/src/ng/filter/filters.js
+++ b/src/ng/filter/filters.js
@@ -356,7 +356,11 @@ function dateFilter($locale) {
tzMin = int(match[9] + match[11]);
}
dateSetter.call(date, int(match[1]), int(match[2]) - 1, int(match[3]));
- timeSetter.call(date, int(match[4]||0) - tzHour, int(match[5]||0) - tzMin, int(match[6]||0), int(match[7]||0));
+ var h = int(match[4]||0) - tzHour;
+ var m = int(match[5]||0) - tzMin
+ var s = int(match[6]||0);
+ var ms = Math.round(parseFloat('0.' + (match[7]||0)) * 1000);
+ timeSetter.call(date, h, m, s, ms);
return date;
}
return string;
diff --git a/test/ng/filter/filtersSpec.js b/test/ng/filter/filtersSpec.js
index 2ed99cf1..eb98c355 100644
--- a/test/ng/filter/filtersSpec.js
+++ b/test/ng/filter/filtersSpec.js
@@ -300,21 +300,23 @@ describe('filters', function() {
it('should support various iso8061 date strings with timezone as input', function() {
var format = 'yyyy-MM-dd ss';
+ var localDay = new Date(Date.UTC(2003, 9, 10, 13, 2, 3, 0)).getDate();
+
//full ISO8061
- expect(date('2003-09-10T13:02:03.000Z', format)).toEqual('2003-09-10 03');
+ expect(date('2003-09-10T13:02:03.000Z', format)).toEqual('2003-09-' + localDay + ' 03');
- expect(date('2003-09-10T13:02:03.000+00:00', format)).toEqual('2003-09-10 03');
+ expect(date('2003-09-10T13:02:03.000+00:00', format)).toEqual('2003-09-' + localDay + ' 03');
- expect(date('20030910T033203-0930', format)).toEqual('2003-09-10 03');
+ expect(date('20030910T033203-0930', format)).toEqual('2003-09-' + localDay + ' 03');
//no millis
- expect(date('2003-09-10T13:02:03Z', format)).toEqual('2003-09-10 03');
+ expect(date('2003-09-10T13:02:03Z', format)).toEqual('2003-09-' + localDay + ' 03');
//no seconds
- expect(date('2003-09-10T13:02Z', format)).toEqual('2003-09-10 00');
+ expect(date('2003-09-10T13:02Z', format)).toEqual('2003-09-' + localDay + ' 00');
//no minutes
- expect(date('2003-09-10T13Z', format)).toEqual('2003-09-10 00');
+ expect(date('2003-09-10T13Z', format)).toEqual('2003-09-' + localDay + ' 00');
});
@@ -331,16 +333,18 @@ describe('filters', function() {
});
it('should support different degrees of subsecond precision', function () {
- var format = 'yyyy-MM-dd';
-
- expect(date('2003-09-10T13:02:03.12345678Z', format)).toEqual('2003-09-10');
- expect(date('2003-09-10T13:02:03.1234567Z', format)).toEqual('2003-09-10');
- expect(date('2003-09-10T13:02:03.123456Z', format)).toEqual('2003-09-10');
- expect(date('2003-09-10T13:02:03.12345Z', format)).toEqual('2003-09-10');
- expect(date('2003-09-10T13:02:03.1234Z', format)).toEqual('2003-09-10');
- expect(date('2003-09-10T13:02:03.123Z', format)).toEqual('2003-09-10');
- expect(date('2003-09-10T13:02:03.12Z', format)).toEqual('2003-09-10');
- expect(date('2003-09-10T13:02:03.1Z', format)).toEqual('2003-09-10');
+ var format = 'yyyy-MM-dd ss';
+
+ var localDay = new Date(Date.UTC(2003, 9-1, 10, 13, 2, 3, 123)).getDate();
+
+ expect(date('2003-09-10T13:02:03.12345678Z', format)).toEqual('2003-09-' + localDay + ' 03');
+ expect(date('2003-09-10T13:02:03.1234567Z', format)).toEqual('2003-09-' + localDay + ' 03');
+ expect(date('2003-09-10T13:02:03.123456Z', format)).toEqual('2003-09-' + localDay + ' 03');
+ expect(date('2003-09-10T13:02:03.12345Z', format)).toEqual('2003-09-' + localDay + ' 03');
+ expect(date('2003-09-10T13:02:03.1234Z', format)).toEqual('2003-09-' + localDay + ' 03');
+ expect(date('2003-09-10T13:02:03.123Z', format)).toEqual('2003-09-' + localDay + ' 03');
+ expect(date('2003-09-10T13:02:03.12Z', format)).toEqual('2003-09-' + localDay + ' 03');
+ expect(date('2003-09-10T13:02:03.1Z', format)).toEqual('2003-09-' + localDay + ' 03');
});
});
});