X-Git-Url: http://git.roojs.org/?p=roojs1;a=blobdiff_plain;f=Date.js;h=6f217a5d556ced3d05d021801a88a20197a4ab75;hp=88904904f48d6943ebd0818f3778fbe569c42cd4;hb=refs%2Fheads%2Fwip_alan_T5944_trim_leading_white_space_from;hpb=44252968cc5a2fcec5e41ca13ad33b567142b6f0 diff --git a/Date.js b/Date.js index 88904904f4..6f217a5d55 100644 --- a/Date.js +++ b/Date.js @@ -47,7 +47,7 @@ Format Output Description H 15 24-hour format of an hour with leading zeros i 05 Minutes with leading zeros s 01 Seconds, with leading zeros - O -0600 Difference to Greenwich time (GMT) in hours + O -0600 Difference to Greenwich time (GMT) in hours (Allows +08, without minutes) P -06:00 Difference to Greenwich time (GMT) with colon between hours and minutes T CST Timezone setting of the machine running the code Z -21600 Timezone offset in seconds (negative if west of UTC, positive if east) @@ -261,6 +261,7 @@ Date.parseDate = function(input, format) { /** * @private */ + Date.createParser = function(format) { var funcName = "parse" + Date.parseFunctions.count++; var regexNum = Date.parseRegexes.length; @@ -273,6 +274,7 @@ Date.createParser = function(format) { + "y = d.getFullYear();\n" + "m = d.getMonth();\n" + "d = d.getDate();\n" + + "if (typeof(input) !== 'string') { input = input.toString(); }\n" + "var results = input.match(Date.parseRegexes[" + regexNum + "]);\n" + "if (results && results.length > 0) {"; var regex = ""; @@ -428,7 +430,9 @@ Date.formatCodeToRegex = function(character, currentGroup) { "o = ((-12 <= (hr*60 + mn)/60) && ((hr*60 + mn)/60 <= 14))?\n", // -12hrs <= GMT offset <= 14hrs " (sn + String.leftPad(hr, 2, 0) + String.leftPad(mn, 2, 0)) : null;\n" ].join(""), - s:"([+\-]\\d{4})"}; + s:"([+\-]\\d{2,4})"}; + + case "P": return {g:1, c:[ @@ -700,8 +704,8 @@ Date.prototype.clearTime = function(clone){ }; // private -// safari setMonth is broken -if(Roo.isSafari){ +// safari setMonth is broken -- check that this is only donw once... +if(Roo.isSafari && typeof(Date.brokenSetMonth) == 'undefined'){ Date.brokenSetMonth = Date.prototype.setMonth; Date.prototype.setMonth = function(num){ if(num <= -1){ @@ -771,7 +775,7 @@ document.write(dt3); //returns 'Fri Oct 06 2006 07:30:00' */ Date.prototype.add = function(interval, value){ var d = this.clone(); - if (!interval || value === 0) return d; + if (!interval || value === 0) { return d; } switch(interval.toLowerCase()){ case Date.MILLI: d.setMilliseconds(this.getMilliseconds() + value);