diff options
| author | Igor Minar | 2010-11-06 23:40:44 -0700 |
|---|---|---|
| committer | Igor Minar | 2010-11-08 22:46:41 -0800 |
| commit | a3976455379cef41345a04bc91cfcf6d848aa609 (patch) | |
| tree | 85ef1667a3e65d176d6f233835f1e0cc12b61a23 | |
| parent | f077649f48b2ad6f6dde42a2e425cf0d6066a820 (diff) | |
| download | angular.js-a3976455379cef41345a04bc91cfcf6d848aa609.tar.bz2 | |
date filter should accept ISO 8601 formatted string as input
Closes #125
| -rw-r--r-- | CHANGELOG.md | 3 | ||||
| -rw-r--r-- | src/filters.js | 11 | ||||
| -rw-r--r-- | test/FiltersSpec.js | 6 |
3 files changed, 17 insertions, 3 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 68c6a071..26d0823c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # <angular/> 0.9.3 cold-resistance (in-progress) # +### Api +- date filter now accepts strings that angular.String.toDate can convert to Date objects + # <angular/> 0.9.2 faunal-mimicry (2010-11-03) # diff --git a/src/filters.js b/src/filters.js index 14d0dff8..2dde740c 100644 --- a/src/filters.js +++ b/src/filters.js @@ -168,7 +168,8 @@ var NUMBER_STRING = /^\d+$/; * * `'a'`: am/pm marker * * `'Z'`: 4 digit (+sign) representation of the timezone offset (-1200‒1200) * - * @param {(Date|number|string)} date Date to format either as Date object or milliseconds. + * @param {(Date|number|string)} date Date to format either as Date object, milliseconds (string or + * number) or ISO 8601 string (yyyy-MM-ddTHH:mm:ssZ). * @param {string=} format Formatting rules. If not specified, Date#toLocaleDateString is used. * @returns {string} Formatted string or the input if input is not recognized as date/millis. * @@ -188,8 +189,12 @@ var NUMBER_STRING = /^\d+$/; * */ angularFilter.date = function(date, format) { - if (isString(date) && NUMBER_STRING.test(date)) { - date = parseInt(date, 10); + if (isString(date)) { + if (NUMBER_STRING.test(date)) { + date = parseInt(date, 10); + } else { + date = angularString.toDate(date); + } } if (isNumber(date)) { diff --git a/test/FiltersSpec.js b/test/FiltersSpec.js index 0de7b5b7..ba66e0b3 100644 --- a/test/FiltersSpec.js +++ b/test/FiltersSpec.js @@ -128,5 +128,11 @@ describe('filter', function(){ expect(filter.date(noon, "yyyy-MM-dd hh=HH:mm:ssaZ")). toEqual('2010-09-03 12=12:05:08pm0500'); }); + + it('should be able to parse ISO 8601 dates/times using', function() { + var isoString = '2010-09-03T05:05:08Z'; + expect(filter.date(isoString)). + toEqual(angular.String.toDate(isoString).toLocaleDateString()); + }); }); }); |
