Si può ottenere un timestamp in JavaScript come avviene nei sistemi Unix? Si può, scopriamo come in questo articolo.
Ciao mi chiamo Lorenzo Neri e sono un informatico: realizzo contenuti per aiutare le persone a padroneggiare l’arte del nuovo millennio, ovvero l’informatica!
In JavaScript esiste la classe Date che permette di generare timestamp.
Come si fa?
Banalmente creando un oggetto:
var tempo = + new Date();
Avrai notato che sto usando l’operatore “+” e giustamente ti stai chiedendo come mai.
Andiamo più a fondo nella faccenda. Se io creassi un oggetto della classe “Date” in questo modo:
var tempo = new Date();
Succede una cosa diversa.
Nel primo caso, ottengo un timestamp relativo al momento esatto in cui l’ho generato.
Nel secondo caso, ottengo data e ora relative al momento esatto in cui le ho generate.
Due cose ben diverse, ma che derivano dallo stesso calcolo.
Quindi, se ti stessi chiedendo davvero come generare un timestamp in JavaScript la risposta sta nel primo metodo.
Ma in verità, esistono altre variazioni.
Dettagli sulla generazione di timestamp in JavaScript
Un altro modo è utilizzare il metodo “now” della classe “Date”:
var tempo = Date.now();
Quello che fa questo metodo è restituire il timestamp UTC in millisecondi. Quindi ce l’hai non solo in un formato più pratico, ma anche basato sul fuso orario!
Ora che abbiamo capito come ottenere un timestamp in JavaScript, specialmente con l’ultimo metodo che abbiamo visto assieme, vediamo come gestirlo.
Per esempio, può capitare che tu voglia convertire in secondi il timestamp ottenuto tramite il metodo “now”.
Per farlo, devi agire tramite la libreria “Math”:
Math.round(Date.now() / 1000)
Questo, per eliminare la parte decimale che non serve.
Ma non finiamo qui.
C’è un metodo alternativo:
var tempo = new Date.getTime()
È un metodo più “antico” che fa pressoché la stessa identica cosa del precedente.
Ho ritenuto giusto inserirlo in questo articolo per completezza di informazioni, ma c’è da considerare una cosa importante!
Ci hai fatto caso che con “now” non devi creare un nuovo oggetto, mentre con “getTime” è necessario?
A te le conclusioni 🙂