aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIgor Minar2010-11-06 23:40:44 -0700
committerIgor Minar2010-11-08 22:46:41 -0800
commita3976455379cef41345a04bc91cfcf6d848aa609 (patch)
tree85ef1667a3e65d176d6f233835f1e0cc12b61a23
parentf077649f48b2ad6f6dde42a2e425cf0d6066a820 (diff)
downloadangular.js-a3976455379cef41345a04bc91cfcf6d848aa609.tar.bz2
date filter should accept ISO 8601 formatted string as input
Closes #125
-rw-r--r--CHANGELOG.md3
-rw-r--r--src/filters.js11
-rw-r--r--test/FiltersSpec.js6
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());
+ });
});
});