aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMisko Hevery2010-10-26 14:25:01 -0700
committerMisko Hevery2010-10-26 14:25:01 -0700
commit1d52349440d40de527b5d7f3849070f525c1b79b (patch)
tree1dd98c7b68e6c6c9ae129ced25beec94e7c23c93
parent3eb0c8bc67644412f34e55945f4b538f87bbb003 (diff)
downloadangular.js-1d52349440d40de527b5d7f3849070f525c1b79b.tar.bz2
Reverted change 841013a4c4d25acf6fc9ff40e449c3d0a4b82ec3 which does not work on all browsers
-rw-r--r--src/apis.js11
-rw-r--r--test/ApiSpecs.js4
-rw-r--r--test/angular-mocks.js2
-rw-r--r--test/scenario/dslSpec.js2
4 files changed, 16 insertions, 3 deletions
diff --git a/src/apis.js b/src/apis.js
index a90685cc..ffa2e788 100644
--- a/src/apis.js
+++ b/src/apis.js
@@ -209,8 +209,15 @@ var angularString = {
* @return {(Date|string)}
*/
'toDate':function(string){
- var date = new Date(string);
- return isNaN(date.getTime()) ? string : date;
+ 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$/))){
+ var date = new Date(0);
+ date.setUTCFullYear(match[1], match[2] - 1, match[3]);
+ date.setUTCHours(match[4], match[5], match[6], 0);
+ return date;
+ }
+ return string;
}
};
diff --git a/test/ApiSpecs.js b/test/ApiSpecs.js
index 7e154206..8969e1bf 100644
--- a/test/ApiSpecs.js
+++ b/test/ApiSpecs.js
@@ -189,6 +189,10 @@ describe('api', function(){
assertEquals(date.getTime(), angular.String.toDate(angular.Date.toString(date)).getTime());
});
+ it('UTCtoDate', function(){
+ expect(angular.String.toDate("2003-09-10T13:02:03Z")).toEqual(new Date("Sep 10 2003 13:02:03 GMT"));
+ });
+
it('StringFromUTC', function(){
var date = angular.String.toDate("2003-09-10T13:02:03Z");
assertEquals("date", angular.Object.typeOf(date));
diff --git a/test/angular-mocks.js b/test/angular-mocks.js
index a090f0e8..f13ca763 100644
--- a/test/angular-mocks.js
+++ b/test/angular-mocks.js
@@ -195,7 +195,7 @@ angular.service('$browser', function(){
function TzDate(offset, timestamp) {
if (angular.isString(timestamp)) {
var tsStr = timestamp;
- timestamp = new Date(timestamp).getTime();
+ timestamp = angular.String.toDate(timestamp).getTime();
if (isNaN(timestamp))
throw {
name: "Illegal Argument",
diff --git a/test/scenario/dslSpec.js b/test/scenario/dslSpec.js
index b9d59fe4..14ca8b2c 100644
--- a/test/scenario/dslSpec.js
+++ b/test/scenario/dslSpec.js
@@ -262,12 +262,14 @@ describe("angular.scenario.dsl", function() {
describe('Binding', function() {
it('should select binding by name', function() {
+ if (msie) return; // TODO reenable!
doc.append('<span ng:bind="foo.bar">some value</span>');
$root.dsl.binding('foo.bar');
expect($root.futureResult).toEqual('some value');
});
it('should select binding in template by name', function() {
+ if (msie) return; // TODO reenable!
doc.append('<pre ng:bind-template="foo {{bar}} baz">foo some baz</pre>');
$root.dsl.binding('bar');
expect($root.futureResult).toEqual('foo some baz');