Skip to content
This repository was archived by the owner on Apr 12, 2024. It is now read-only.

Commit c6d8512

Browse files
shahatapetebacondarwin
authored andcommitted
feat(filter): support conversion to timezone other than UTC
Closes #10858
1 parent 8a2c80c commit c6d8512

File tree

2 files changed

+16
-4
lines changed

2 files changed

+16
-4
lines changed

src/ng/filter/filters.js

+7-4
Original file line numberDiff line numberDiff line change
@@ -485,10 +485,13 @@ function dateFilter($locale) {
485485
}
486486

487487
var dateTimezoneOffset = date.getTimezoneOffset();
488-
if (timezone && timezone === 'UTC') {
489-
date = new Date(date.getTime());
490-
date.setMinutes(date.getMinutes() + date.getTimezoneOffset());
491-
dateTimezoneOffset = 0;
488+
if (timezone) {
489+
var requestedTimezoneOffset = Date.parse('Jan 01, 1970 00:00:00 ' + timezone) / 60000;
490+
if (!isNaN(requestedTimezoneOffset)) {
491+
date = new Date(date.getTime());
492+
date.setMinutes(date.getMinutes() + dateTimezoneOffset - requestedTimezoneOffset);
493+
dateTimezoneOffset = requestedTimezoneOffset;
494+
}
492495
}
493496
forEach(parts, function(value) {
494497
fn = DATE_FORMATS[value];

test/ng/filter/filtersSpec.js

+9
Original file line numberDiff line numberDiff line change
@@ -458,5 +458,14 @@ describe('filters', function() {
458458
expect(date(new Date(Date.UTC(2003, 8, 10, 3, 2, 4)), 'yyyy-MM-dd HH-mm-ss', 'UTC')).toEqual('2003-09-10 03-02-04');
459459
expect(date(new Date(Date.UTC(2003, 8, 10, 3, 2, 4)), 'yyyy-MM-dd HH-mm-ssZ', 'UTC')).toEqual('2003-09-10 03-02-04+0000');
460460
});
461+
462+
it('should support conversion to any timezone', function() {
463+
expect(date(new Date(Date.UTC(2003, 8, 10, 3, 2, 4)), 'yyyy-MM-dd HH-mm-ssZ', 'GMT+0500')).toEqual('2003-09-10 08-02-04+0500');
464+
});
465+
466+
it('should fallback to default timezone in case an unknown timezone was passed', function() {
467+
var value = new angular.mock.TzDate(-2, '2003-09-10T01:02:04.000Z');
468+
expect(date(value, 'yyyy-MM-dd HH-mm-ssZ', 'WTF')).toEqual('2003-09-10 03-02-04+0200');
469+
});
461470
});
462471
});

0 commit comments

Comments
 (0)