2014-11-23 15 views
10

Come ottengo la data più piccola e più grande. Vedo che il numero più piccolo può essere ottenuto in questo modo:Come ottenere la data minima e massima

Number.MIN_VALUE 

La data non ce l'ha. C'è un modo per trovare la data più piccolo e più grande

risposta

20

Data non ha questo

In realtà, lo fa, ma solo indirettamente. Secondo the specification, millisecondi-Since the Epoch il valore di un oggetto Date può essere solo nel range -8.640 mille miliardi di 8640000000000000.

Quindi la data minima è new Date(-8640000000000000) (Mar 20 Apr -271.821 00:00:00 GMT) e la data massima è new Date(8640000000000000) (sab, 13 set 275760 00:00:00 GMT).

Se si volesse, si potrebbe mettere quelli sulla funzione Date come proprietà:

Date.MIN_VALUE = new Date(-8640000000000000); 
Date.MAX_VALUE = new Date(8640000000000000); 

... ma dal momento che Date casi sono mutabili, probabilmente non sarei, perché è troppo facile da modificare accidentalmente uno di loro. Un'alternativa sarebbe quella di fare questo:

Object.defineProperties(Date, { 
    MIN_VALUE: { 
     value: -8640000000000000 // A number, not a date 
    }, 
    MAX_VALUE: { 
     value: 8640000000000000 
    } 
}); 

che definisce immobili in Date che non possono essere modificati che hanno il/valore numerico massimo minimo per le date. (Su un motore JavaScript con supporto ES5.)

+1

Perfetto. Questo ha funzionato meravigliosamente. – Luke101

+0

OMG, devi avere un cervello sottosopra per pensare a questo @ T.J. Crowder! C'è solo un problema con la tua risposta, cosa succede se l'anno 275760 è arrivato, cosa succederebbe? : P Ottima risposta! – evilReiko

+1

@evilReiko: si tratta di un problema con l'oggetto Date JavaScript, non la mia risposta. **; -) ** –

Problemi correlati