Nun, ich habe ein seltsames Problem beim Konvertieren von einem Unix-Zeitstempel in eine menschliche Darstellung mit Javascript
Hier ist der Zeitstempel
1301090400
Das ist mein Javascript
var date = new Date(timestamp * 1000);
var year = date.getFullYear();
var month = date.getMonth();
var day = date.getDay();
var hour = date.getHours();
var minute = date.getMinutes();
var seconds = date.getSeconds();
Ich habe erwartet, dass die Ergebnisse 2011 2, 25 22 00 00 sein werden. Aber es ist 2011, 2, 6, 0, 0, 0 Was vermisse ich?
javascript
timestamp
Georgevich
quelle
quelle
Antworten:
getDay()
Gibt den Wochentag zurück. Verwenden Sie, um das Datum abzurufendate.getDate()
.getMonth()
Ruft den Monat ab, aber der Monat basiert auf Null.getMonth()+1
Wenn Sie ihn verwenden, sollten Sie den richtigen Monat erhalten. Der Zeitwert scheint hier in Ordnung zu sein, obwohl die Stunde hier 23 ist (GMT + 1). Wenn Sie universelle Werte wollen, fügen SieUTC
zu den Methoden (zBdate.getUTCFullYear()
,date.getUTCHours()
)quelle
minute = (minute < 10 ? "0" : "") + minute;
date.getUTCHours()
?Wo
unixtime
ist die von Ihrer SQL-Datenbank zurückgegebene Zeit? Hier ist eine Geige, wenn es hilft.Verwenden Sie es beispielsweise für die aktuelle Zeit:
quelle
"unixtime is undefined"
ist, was ich hiernew Date(1480966325 * 1000).toUTCString()
Hier ist die Antwort von kooilnc mit gepolsterten Nullen
quelle
Stunden, Minuten und Sekunden hängen von der Zeitzone Ihres Betriebssystems ab. In GMT (UST) ist es 22:00:00, aber in verschiedenen Zeitzonen kann es alles sein. Fügen Sie also den Zeitzonenversatz zur Zeit hinzu, um das GMT-Datum zu erstellen:
quelle
Verwendung
Date.prototype.toLocaleTimeString()
wie hier dokumentiertBitte beachten Sie das Gebietsschema-Beispiel en-US in der URL.
quelle