aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIgor Minar2011-08-12 02:28:45 -0700
committerIgor Minar2011-08-14 23:44:21 -0700
commit37b5c5cfe9df70fa2a2c6c681a903b7c356aec74 (patch)
tree53a01012cd69c194d40325613313450a1285d494
parent966cbd4cf8d795b1706ff400f604c6002d7e81f9 (diff)
downloadangular.js-37b5c5cfe9df70fa2a2c6c681a903b7c356aec74.tar.bz2
break(date): remove support for 'long', 'longtime' date formats and 'z' flag
The support for the 'z' formatting flag was removed becase the timezone info can't be retrieved from the browser apis (except for en-US locale on some but not all browsers). For this reason we don't want to support this flag at all. Related to this, since the 'long' and 'longtime' datetime formats require the 'z' flag in the formatting string, we are removing support for this format as well.
-rw-r--r--src/angular-mocks.js8
-rw-r--r--src/filters.js21
-rw-r--r--src/service/locale.js2
-rw-r--r--test/FiltersSpec.js41
-rw-r--r--test/angular-mocksSpec.js6
5 files changed, 13 insertions, 65 deletions
diff --git a/src/angular-mocks.js b/src/angular-mocks.js
index 719e87b3..066ccea5 100644
--- a/src/angular-mocks.js
+++ b/src/angular-mocks.js
@@ -439,7 +439,7 @@ function MockLogFactory() {
* </pre>
*
*/
-function TzDate(offset, timestamp, toStringVal) {
+function TzDate(offset, timestamp) {
if (angular.isString(timestamp)) {
var tsStr = timestamp;
@@ -463,10 +463,6 @@ function TzDate(offset, timestamp, toStringVal) {
return this.date.getTime() - this.offsetDiff;
};
- this.toString = function() {
- return toStringVal;
- };
-
this.toLocaleDateString = function() {
return this.date.toLocaleDateString();
};
@@ -537,8 +533,6 @@ function TzDate(offset, timestamp, toStringVal) {
'toLocaleTimeString', 'toSource', 'toString', 'toTimeString', 'toUTCString', 'valueOf'];
angular.forEach(unimplementedMethods, function(methodName) {
- if (methodName == 'toString' && toStringVal) return;
-
self[methodName] = function() {
throw {
name: "MethodNotImplemented",
diff --git a/src/filters.js b/src/filters.js
index b3d4c437..f636b242 100644
--- a/src/filters.js
+++ b/src/filters.js
@@ -215,16 +215,10 @@ function dateStrGetter(name, shortForm) {
};
}
-function timeZoneGetter(numFormat) {
- return function(date) {
- var timeZone;
- if (numFormat || !(timeZone = GET_TIME_ZONE.exec(date.toString()))) {
- var offset = date.getTimezoneOffset();
- return padNumber(offset / 60, 2) + padNumber(Math.abs(offset % 60), 2);
- }
- return timeZone[0];
- };
-}
+function timeZoneGetter(date) {
+ var offset = date.getTimezoneOffset();
+ return padNumber(offset / 60, 2) + padNumber(Math.abs(offset % 60), 2);
+};
function ampmGetter(date, formats) {
return date.getHours() < 12 ? formats.AMPMS[0] : formats.AMPMS[1];
@@ -251,8 +245,7 @@ var DATE_FORMATS = {
EEEE: dateStrGetter('Day'),
EEE: dateStrGetter('Day', true),
a: ampmGetter,
- z: timeZoneGetter(false),
- Z: timeZoneGetter(true)
+ Z: timeZoneGetter
};
var GET_TIME_ZONE = /[A-Z]{3}(?![+\-])/;
@@ -293,13 +286,10 @@ var NUMBER_STRING = /^\d+$/;
* * `'s'`: Second in minute (0-59)
* * `'a'`: am/pm marker
* * `'Z'`: 4 digit (+sign) representation of the timezone offset (-1200-1200)
- * * `'z'`: short form of current timezone name (e.g. PDT)
*
* `format` string can also be one of the following predefined
* {@link guide/dev_guide.i18n localizable formats}:
*
- * * `'long'`: equivalent to `'MMMM d, y h:mm:ss a z'` for en_US locale
- * (e.g. September 3, 2010 12:05:08 pm PDT)
* * `'medium'`: equivalent to `'MMM d, y h:mm:ss a'` for en_US locale
* (e.g. Sep 3, 2010 12:05:08 pm)
* * `'short'`: equivalent to `'M/d/yy h:mm a'` for en_US locale (e.g. 9/3/10 12:05 pm)
@@ -308,7 +298,6 @@ var NUMBER_STRING = /^\d+$/;
* * `'longDate'`: equivalent to `'MMMM d, y'` for en_US locale (e.g. September 3, 2010
* * `'mediumDate'`: equivalent to `'MMM d, y'` for en_US locale (e.g. Sep 3, 2010)
* * `'shortDate'`: equivalent to `'M/d/yy'` for en_US locale (e.g. 9/3/10)
- * * `'longTime'`: equivalent to `'h:mm:ss a z'` for en_US locale (e.g. 12:05:08 pm PDT)
* * `'mediumTime'`: equivalent to `'h:mm:ss a'` for en_US locale (e.g. 12:05:08 pm)
* * `'shortTime'`: equivalent to `'h:mm a'` for en_US locale (e.g. 12:05 pm)
*
diff --git a/src/service/locale.js b/src/service/locale.js
index 0e8c3b42..e94c2100 100644
--- a/src/service/locale.js
+++ b/src/service/locale.js
@@ -50,14 +50,12 @@ angularServiceInject('$locale', function() {
DAY: 'Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday'.split(','),
SHORTDAY: 'Sun,Mon,Tue,Wed,Thu,Fri,Sat'.split(','),
AMPMS: ['AM','PM'],
- long: 'MMMM d, y h:mm:ss a z',
medium: 'MMM d, y h:mm:ss a',
short: 'M/d/yy h:mm a',
fullDate: 'EEEE, MMMM d, y',
longDate: 'MMMM d, y',
mediumDate: 'MMM d, y',
shortDate: 'M/d/yy',
- longTime: 'h:mm:ss a z',
mediumTime: 'h:mm:ss a',
shortTime: 'h:mm a'
}
diff --git a/test/FiltersSpec.js b/test/FiltersSpec.js
index a09ef481..2673b36e 100644
--- a/test/FiltersSpec.js
+++ b/test/FiltersSpec.js
@@ -195,8 +195,6 @@ describe('filter', function() {
var noon = new TzDate(+5, '2010-09-03T17:05:08.000Z'); //12pm
var midnight = new TzDate(+5, '2010-09-03T05:05:08.000Z'); //12am
var earlyDate = new TzDate(+5, '0001-09-03T05:05:08.000Z');
- var timZoneDate = new TzDate(+5, '2010-09-03T05:05:08.000Z',
- 'Mon Sep 3 2010 00:05:08 GMT+0500 (XYZ)'); //12am
var context, date;
@@ -225,16 +223,13 @@ describe('filter', function() {
toEqual('10-09-03 07:05:08');
expect(date(midnight, "yyyy-M-d h=H:m:saZ")).
- toEqual('2010-9-3 12=0:5:8am0500');
+ toEqual('2010-9-3 12=0:5:8AM0500');
expect(date(midnight, "yyyy-MM-dd hh=HH:mm:ssaZ")).
- toEqual('2010-09-03 12=00:05:08am0500');
+ toEqual('2010-09-03 12=00:05:08AM0500');
expect(date(noon, "yyyy-MM-dd hh=HH:mm:ssaZ")).
- toEqual('2010-09-03 12=12:05:08pm0500');
-
- expect(date(timZoneDate, "yyyy-MM-dd hh=HH:mm:ss a z")).
- toEqual('2010-09-03 12=00:05:08 am XYZ');
+ toEqual('2010-09-03 12=12:05:08PM0500');
expect(date(noon, "EEE, MMM d, yyyy")).
toEqual('Fri, Sep 3, 2010');
@@ -258,14 +253,11 @@ describe('filter', function() {
it('should accept default formats', function() {
- expect(date(timZoneDate, "long")).
- toEqual('September 3, 2010 12:05:08 am XYZ');
-
expect(date(noon, "medium")).
- toEqual('Sep 3, 2010 12:05:08 pm');
+ toEqual('Sep 3, 2010 12:05:08 PM');
expect(date(noon, "short")).
- toEqual('9/3/10 12:05 pm');
+ toEqual('9/3/10 12:05 PM');
expect(date(noon, "fullDate")).
toEqual('Friday, September 3, 2010');
@@ -279,32 +271,13 @@ describe('filter', function() {
expect(date(noon, "shortDate")).
toEqual('9/3/10');
- expect(date(timZoneDate, "longTime")).
- toEqual('12:05:08 am XYZ');
-
expect(date(noon, "mediumTime")).
- toEqual('12:05:08 pm');
+ toEqual('12:05:08 PM');
expect(date(noon, "shortTime")).
- toEqual('12:05 pm');
+ toEqual('12:05 PM');
});
-
- it('should parse timezone identifier from various toString values', function() {
- //chrome and firefox format
- expect(date(new TzDate(+5, '2010-09-03T17:05:08.000Z',
- 'Mon Sep 3 2010 17:05:08 GMT+0500 (XYZ)'), "z")).toBe('XYZ');
-
- //opera format
- expect(date(new TzDate(+5, '2010-09-03T17:05:08.000Z',
- '2010-09-03T17:05:08Z'), "z")).toBe('0500');
-
- //ie 8 format
- expect(date(new TzDate(+5, '2010-09-03T17:05:08.000Z',
- 'Mon Sep 3 17:05:08 XYZ 2010'), "z")).toBe('XYZ');
- });
-
-
it('should be able to parse ISO 8601 dates/times using', function() {
var isoString = '2010-09-03T05:05:08.872Z';
expect(date(isoString)).
diff --git a/test/angular-mocksSpec.js b/test/angular-mocksSpec.js
index f24f6e57..bf5c7816 100644
--- a/test/angular-mocksSpec.js
+++ b/test/angular-mocksSpec.js
@@ -123,12 +123,6 @@ describe('mocks', function(){
});
- it('should fake toString method when a third param is passed in', function() {
- var t = new TzDate(0, 0, 'Mon Sep 3 2010 17:05:08 GMT+0500 (XYZ)');
- expect(t.toString()).toBe('Mon Sep 3 2010 17:05:08 GMT+0500 (XYZ)');
- });
-
-
it('should throw error when no third param but toString called', function() {
expect(function() { new TzDate(0,0).toString(); }).
toThrow('Method \'toString\' is not implemented in the TzDate mock');