diff options
| author | Igor Minar | 2010-11-08 09:05:48 -0800 | 
|---|---|---|
| committer | Igor Minar | 2010-11-08 22:49:30 -0800 | 
| commit | e5c135ac50bfb463895c71a9b83267e9ca836c7b (patch) | |
| tree | 1130899dc2c48f2e3f1087d106597fcc00ebff5d /src | |
| parent | 1a43f36e2395c77005fd14fafd43808548b111f2 (diff) | |
| download | angular.js-e5c135ac50bfb463895c71a9b83267e9ca836c7b.tar.bz2 | |
Support ISO 8601 extended datetime format troughout angular.
Support ISO 8601 extended format datetime strings (YYYY-MM-DDTHH:mm:ss.SSSZ) as defined
  in EcmaScript 5 throughout angular. This means that the following apis switched from
  YYYY-MM-DDTHH:mm:ssZ to YYYY-MM-DDTHH:mm:ss.SSSZ (note the added millis) when representing dates:
  - angular.Date.toString
  - angular.String.toDate
  - JSON serialization and deserialization (used by json filter, $xhr and $resource)
Diffstat (limited to 'src')
| -rw-r--r-- | src/apis.js | 18 | ||||
| -rw-r--r-- | src/filters.js | 2 | ||||
| -rw-r--r-- | src/parser.js | 2 | 
3 files changed, 11 insertions, 11 deletions
| diff --git a/src/apis.js b/src/apis.js index c232e4a9..effb70d7 100644 --- a/src/apis.js +++ b/src/apis.js @@ -211,10 +211,10 @@ var angularString = {    'toDate':function(string){      var match;      if (typeof string == 'string' && -        (match = string.match(/^(\d\d\d\d)-(\d\d)-(\d\d)T(\d\d):(\d\d):(\d\d)Z$/))){ +        (match = string.match(/^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d):(\d\d)\.(\d{3})Z$/))){        var date = new Date(0);        date.setUTCFullYear(match[1], match[2] - 1, match[3]); -      date.setUTCHours(match[4], match[5], match[6], 0); +      date.setUTCHours(match[4], match[5], match[6], match[7]);        return date;      }      return string; @@ -223,14 +223,14 @@ var angularString = {  var angularDate = {      'toString':function(date){ -      function pad(n) { return n < 10 ? "0" + n : n; }        return  !date ? date : -        date.getUTCFullYear() + '-' + -        pad(date.getUTCMonth() + 1) + '-' + -        pad(date.getUTCDate()) + 'T' + -        pad(date.getUTCHours()) + ':' + -        pad(date.getUTCMinutes()) + ':' + -        pad(date.getUTCSeconds()) + 'Z' ; +        padNumber(date.getUTCFullYear(), 4) + '-' + +        padNumber(date.getUTCMonth() + 1, 2) + '-' + +        padNumber(date.getUTCDate(), 2) + 'T' + +        padNumber(date.getUTCHours(), 2) + ':' + +        padNumber(date.getUTCMinutes(), 2) + ':' + +        padNumber(date.getUTCSeconds(), 2) + '.' + +        padNumber(date.getUTCMilliseconds(), 3) + 'Z';      }    }; diff --git a/src/filters.js b/src/filters.js index ee0ef076..a166abad 100644 --- a/src/filters.js +++ b/src/filters.js @@ -169,7 +169,7 @@ var NUMBER_STRING = /^\d+$/;   *   * `'Z'`: 4 digit (+sign) representation of the timezone offset (-1200‒1200)   *   * @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). + *    number) or ISO 8601 extended datetime string (yyyy-MM-ddTHH:mm:ss.SSSZ).   * @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.   * diff --git a/src/parser.js b/src/parser.js index 77800209..97d5740d 100644 --- a/src/parser.js +++ b/src/parser.js @@ -26,7 +26,7 @@ var OPERATORS = {  var ESCAPE = {"n":"\n", "f":"\f", "r":"\r", "t":"\t", "v":"\v", "'":"'", '"':'"'};  function lex(text, parseStringsForObjects){ -  var dateParseLength = parseStringsForObjects ? 20 : -1, +  var dateParseLength = parseStringsForObjects ? 24 : -1,        tokens = [],        token,        index = 0, | 
