Wie kann ich ein normales Datum 2012.08.10
in einen Unix-Zeitstempel in Javascript konvertieren ?
Fiddle: http://jsfiddle.net/J2pWj/
Ich habe hier viele Beiträge gesehen, die es in PHP, Ruby usw. konvertieren. Aber ich muss dies in JS tun.
unix timestamp
ist so grundlegend für die gesamte Technik und Informatik. Ich wünschte, es gäbe eine eingebaute Komfortmethode. Zur Zeit benutze ichMath.floor((+new Date()) / 1000);
Antworten:
Überprüfen Sie die Dokumentation zum JavaScript-Datum .
quelle
Es ist wichtig, das hinzuzufügen
toFixed(0)
, um Dezimalstellen zu entfernen, wenn durch 1000 dividiert wird, um von Millisekunden in Sekunden umzuwandeln.Die
.getTime()
Funktion gibt den Zeitstempel in Millisekunden zurück, echte Unix-Zeitstempel jedoch immer in Sekunden.quelle
Sie sollten sich die api moment.js ansehen, sie ist sehr einfach zu bedienen und verfügt über viele integrierte Funktionen.
Ich denke, für Ihr Problem könnten Sie so etwas verwenden:
quelle
quelle
Sie können einfach den Operator unary + verwenden
(+new Date('2012.08.10')/1000).toFixed(0);
http://xkr.us/articles/javascript/unary-add/ - siehe unter Daten.
quelle
/
bereits ein mathematischer Operator ist. AuchtoFixed
gibt einen String und keine Nummer, falls der Typ ist wichtig ..Sie können Date.parse () verwenden , die akzeptierten Eingabeformate sind jedoch implementierungsabhängig. Wenn Sie das Datum jedoch in das ISO-Format (JJJJ-MM-TT) konvertieren können, sollten die meisten Implementierungen dies verstehen.
Siehe Warum liefert Date.parse falsche Ergebnisse? .
quelle
In diesem Fall ist es wichtig, nur eine ganze Zahl zurückzugeben (eine einfache Unterteilung reicht also nicht aus) und auch nur tatsächlich verstrichene Sekunden zurückzugeben (deshalb verwendet dieser Code
Math.floor()
und nichtMath.round()
).quelle
Sie können dies mit der Date.parse () -Methode tun.
Date.parse ("03.03.2016") Ausgabe-> 1456959600000
Ausgabe von Date.parse ("2015-12-12") -> 1449878400000
quelle
quelle
Nach dem Vergleich des Zeitstempels mit dem von PHP scheint keiner der oben genannten Punkte für meine Zeitzone korrekt zu sein. Der folgende Code gab mir das gleiche Ergebnis wie PHP, was für das Projekt, das ich mache, am wichtigsten ist.
Ich benutze dies auf NodeJS und wir haben die Zeitzone 'Australien / Sydney'. Also musste ich dies in die .env-Datei einfügen:
Oben ist äquivalent zu:
quelle
Zeitstempel in Unix-Zeitstempel konvertieren.
const date = 1513787412; const unixDate = new Date(date * 1000);// Dec 20 2020 (object)
um den timeStamp nach der Konvertierung zu erhalten
const TimeStamp = new Date(date*1000).getTime(); //1513787412000
quelle