diff options
| author | Igor Minar | 2013-01-09 09:47:40 -0800 | 
|---|---|---|
| committer | Igor Minar | 2013-01-09 09:50:43 -0800 | 
| commit | cc821502bca64d15e1c576bf20a62b28b3d9a88a (patch) | |
| tree | 5d3f5dd161a7d0e3c2dc86847532ccc92a619b4d /test | |
| parent | 037aefae479ba44510a084c86a60a41e4261a078 (diff) | |
| download | angular.js-cc821502bca64d15e1c576bf20a62b28b3d9a88a.tar.bz2 | |
fix(date): parse string input as local time unless TZ is specified
previously we were always parsing the string input as UTC which cased issues like:
{{ '2012-04-01' | date:'d MMM yyyy' }} renders as 31 Mar 2012
BREAKING CHANGE: string input without timezone info is now parsed as local time/date
Closes #847
Diffstat (limited to 'test')
| -rw-r--r-- | test/ng/filter/filtersSpec.js | 33 | 
1 files changed, 19 insertions, 14 deletions
diff --git a/test/ng/filter/filtersSpec.js b/test/ng/filter/filtersSpec.js index cbb41841..369800e9 100644 --- a/test/ng/filter/filtersSpec.js +++ b/test/ng/filter/filtersSpec.js @@ -253,32 +253,37 @@ describe('filters', function() {      }); -    it('should support various iso8061 date strings as input', function() { -      var format = 'yyyy-MM ss'; +    it('should support various iso8061 date strings with timezone as input', function() { +      var format = 'yyyy-MM-dd ss';        //full ISO8061 -      expect(date('2003-09-10T13:02:03.000Z', format)).toEqual('2003-09 03'); +      expect(date('2003-09-10T13:02:03.000Z', format)).toEqual('2003-09-10 03'); -      expect(date('2003-09-10T13:02:03.000+00:00', format)).toEqual('2003-09 03'); +      expect(date('2003-09-10T13:02:03.000+00:00', format)).toEqual('2003-09-10 03'); -      expect(date('2003-09-10T13:02:03-08:00', format)).toEqual('2003-09 03'); - -      expect(date('20030910T033203-0930', format)).toEqual('2003-09 03'); - -      //no timezone -      expect(date('2003-09-10T13:02:03.000', format)).toEqual('2003-09 03'); +      expect(date('20030910T033203-0930', format)).toEqual('2003-09-10 03');        //no millis -      expect(date('2003-09-10T13:02:03Z', format)).toEqual('2003-09 03'); +      expect(date('2003-09-10T13:02:03Z', format)).toEqual('2003-09-10 03');        //no seconds -      expect(date('2003-09-10T13:02Z', format)).toEqual('2003-09 00'); +      expect(date('2003-09-10T13:02Z', format)).toEqual('2003-09-10 00');        //no minutes -      expect(date('2003-09-10T13Z', format)).toEqual('2003-09 00'); +      expect(date('2003-09-10T13Z', format)).toEqual('2003-09-10 00'); +    }); + + +    it('should parse iso8061 date strings without timezone as local time', function() { +      var format = 'yyyy-MM-dd HH-mm-ss'; + +      //full ISO8061 without timezone +      expect(date('2003-09-10T03:02:04.000', format)).toEqual('2003-09-10 03-02-04'); + +      expect(date('20030910T030204', format)).toEqual('2003-09-10 03-02-04');        //no time -      expect(date('2003-09-10', format)).toEqual('2003-09 00'); +      expect(date('2003-09-10', format)).toEqual('2003-09-10 00-00-00');      });      it('should support different degrees of subsecond precision', function () {  | 
