2017-05-08 3 views
1

Ich frage mich, warum diese beiden Date-Objekte unterschiedliche Ausgabe in der Konsole haben. Meiner Meinung nach sollte es das gleiche sein, aber ich kann :)Warum unterscheiden sich diese Date-Objekte?

var twoLinesSetup = new Date(); 
 
twoLinesSetup.setHours(0, 0, 0); 
 
var inlineSetup = new Date().setHours(0, 0, 0) 
 

 
console.log('twoLinesSetup', twoLinesSetup); 
 
console.log('inlineSetup', inlineSetup);

Und die Konsole

twoLinesSetup falsch sein: Mo 8. Mai 2017 00:00:00 GMT + 0200

inlineSetup: 1494194400521

Warum ist es so?

+5

Weil 'setHours()' Millisekunden als Zahl zurückgibt, nicht die 'Date' Instanz ?! – Bergi

Antwort

2

inlineSetup speichert den Rückgabewert von setHours zurückgibt. Es ist "A Number, representing the number of milliseconds zwischen dem Datum Objekt und Mitternacht 1. Januar 1970"

twoLinesSetup ist ein tatsächliches Objekt, das Sie manipulieren. Die Konsolenausgabe - die "toString" -Methode, wenn Sie so wollen, ist die formatierte Zeichenfolgendarstellung, die Sie sehen.

In der Theorie sollten Sie die gleiche Nummer, indem Sie twoLinesSetup.getTime() tun.

0

Sie ordnen den Rückgabewert des setHours()-Aufrufs inlineSetup zu. Dies ist nicht das Objekt Date, sondern eine Zahl, die die Millisekunden des Datums darstellt.

Verwandte Themen