Sono sicuro che c'è un motivo per cui devo aggiungere tre zeri a ogni timestamp Unix in JavaScript per ottenere la data corretta. Puoi dirmi perché? È semplice come millisecondi dall'epoca contro i secondi?Perché devo moltiplicare unix timestamp per 1000 in JavaScript?
risposta
Perché Javascript utilizza internamente millisecondi, mentre i normali timestamp UNIX sono in genere in secondi.
Non equivale a perdita di dati? Errori di arrotondamento? – Edward
La moltiplicazione non dovrebbe perdere nulla, anche Il tipo 'Number' di strano non-a-float-is-a-float di Javascript dovrebbe essere in grado di farlo senza errori di arrotondamento, mentre la divisione, d'altra parte, perderà almeno la parte in millisecondi, che i normali timestamp di UNIX non possono esprimere Comunque. – deceze
Javascript utilizza il numero di millisecondi dall'epoca. Il timestamp di Unix è secondi dall'epoca.
Di qui, la necessità di convertire timestamp Unix in millseconds prima di utilizzarlo in Javascript
tempo Unix è il numero di secondi dall'epoca (1 Gennaio 1970). In Javascript, l'oggetto Date
si aspetta il numero di millisecondi dall'epoca, quindi la differenza di 1000 volte.
Perché usano diverse unità di misura? – spender
Grazie a tutti. Sapevo che doveva essere qualcosa di logico. La mia prossima domanda sarà su quali potrebbero essere le decisioni di progettazione intorno ai millisecondi rispetto ai secondi data la semi-incongruenza. – buley
Cosa ne pensi di invitare prima le risposte utili e accettare la risposta che meglio ha risolto la tua domanda? – Phrogz