Changeset 12199

Show
Ignore:
Timestamp:
01/29/08 11:26:07 (12 months ago)
Author:
peller
Message:

reduce the bounds checking code. Refs #5716

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • dojo/trunk/date/locale.js

    r12198 r12199  
    293293        var widthList = ['abbr', 'wide', 'narrow']; 
    294294        var result = [1970,0,1,0,0,0,0]; // will get converted to a Date at the end 
    295         var expected = {}; 
    296295        var amPm = ""; 
    297296        var valid = dojo.every(match, function(v, i){ 
     
    304303                                        //interpret year literally, so '5' would be 5 A.D. 
    305304                                        result[0] = v; 
    306                                         expected.year = v; 
    307305                                }else{ 
    308306                                        if(v<100){ 
     
    315313                                                var num = (v < cutoff) ? century + v : century - 100 + v; 
    316314                                                result[0] = num; 
    317                                                 expected.year = num; 
    318315                                        }else{ 
    319316                                                //we expected 2 digits and got more... 
     
    324321                                                //also tolerate '1950', if 'yyyy' input passed to 'yy' format 
    325322                                                result[0] = v; 
    326                                                 expected.year = v; 
    327323                                        } 
    328324                                } 
     
    346342                                } 
    347343                                result[1] = v; 
    348                                 expected.month = v; 
    349344                                break; 
    350345                        case 'E': 
     
    369364                        case 'd': 
    370365                                result[2] = v; 
    371                                 expected.date = v; 
    372366                                break; 
    373367                        case 'D': 
     
    440434        // Do some bounds checking.  The Date() constructor normalizes things like April 32nd... 
    441435        //TODO: why isn't this done for times as well? 
     436        var allTokens = tokens.join(""); 
    442437        if(!valid || 
    443                 (expected.year && dateObject.getFullYear() != result[0]) || 
    444                 (expected.month && dateObject.getMonth() != result[1]) || 
    445                 (expected.date && dateObject.getDate() != result[2])){ 
     438                (allTokens.indexOf('y') != -1 && dateObject.getFullYear() != result[0]) || 
     439                (allTokens.indexOf('M') != -1 && dateObject.getMonth() != result[1]) || 
     440                (allTokens.indexOf('d') != -1 && dateObject.getDate() != result[2])){ 
    446441                return null; 
    447442        }