From e175db37c6f52bba4080efeec22a7120a896099e Mon Sep 17 00:00:00 2001 From: Igor Minar Date: Tue, 18 Oct 2011 23:42:36 -0700 Subject: fix(date filter): default to fullDate format The browser's behave inconsistently, so we should just stick to one format when the format is not specified by the developer Closes #605 --- src/filters.js | 42 ++++++++++++++++++++++-------------------- 1 file changed, 22 insertions(+), 20 deletions(-) (limited to 'src') diff --git a/src/filters.js b/src/filters.js index b2d6f4b7..f9ff418e 100644 --- a/src/filters.js +++ b/src/filters.js @@ -318,7 +318,7 @@ var GET_TIME_ZONE = /[A-Z]{3}(?![+\-])/, * @param {(Date|number|string)} date Date to format either as Date object, milliseconds (string or * number) or ISO 8601 extended datetime string (yyyy-MM-ddTHH:mm:ss.SSSZ). * @param {string=} format Formatting rules (see Description). If not specified, - * Date#toLocaleDateString is used. + * `fullDate` is used. * @returns {string} Formatted string or the input if input is not recognized as date/millis. * * @example @@ -344,7 +344,12 @@ var GET_TIME_ZONE = /[A-Z]{3}(?![+\-])/, */ angularFilter.date = function(date, format) { - var $locale = this.$service('$locale'); + var $locale = this.$service('$locale'), + text = '', + parts = [], + fn, match; + + format = format || 'fullDate' format = $locale.DATETIME_FORMATS[format] || format; if (isString(date)) { if (NUMBER_STRING.test(date)) { @@ -362,26 +367,23 @@ angularFilter.date = function(date, format) { return date; } - var text = date.toLocaleDateString(), fn; - if (format && isString(format)) { - text = ''; - var parts = [], match; - while(format) { - match = DATE_FORMATS_SPLIT.exec(format); - if (match) { - parts = concat(parts, match, 1); - format = parts.pop(); - } else { - parts.push(format); - format = null; - } + while(format) { + match = DATE_FORMATS_SPLIT.exec(format); + if (match) { + parts = concat(parts, match, 1); + format = parts.pop(); + } else { + parts.push(format); + format = null; } - forEach(parts, function(value){ - fn = DATE_FORMATS[value]; - text += fn ? fn(date, $locale.DATETIME_FORMATS) - : value.replace(/(^'|'$)/g, '').replace(/''/g, "'"); - }); } + + forEach(parts, function(value){ + fn = DATE_FORMATS[value]; + text += fn ? fn(date, $locale.DATETIME_FORMATS) + : value.replace(/(^'|'$)/g, '').replace(/''/g, "'"); + }); + return text; }; -- cgit v1.2.3