2009-11-24 16 views
52

ich das Datum und die Zeit wie dieserKonvertieren von Datum und Uhrzeit Unix-Zeitstempel

24-November-2009 17:57:35

Anzeige ich es konvertieren möchten ein Unix-Timestamp, damit ich es leicht manipulieren kann. Ich müsste Regex verwenden, um jeden Teil des Strings zu vergleichen, und dann den Unix-Zeitstempel daraus berechnen.

Ich bin schrecklich mit Regex, aber ich kam mit diesem. Bitte schlagen Sie Verbesserungen vor ^.^

/((\d){2}+)-((Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)+)-((\d){4}+) ((\d){2}+):((\d){2}+):((\d){2}+)/gi 

Wie kann ich das tun?

+0

komplette Seite Kommentar, aber jedes Mal wenn ich sehe deinen Namen Ich denke, "Ben Shalock Lock-Ben" (Ref: http://www.discogs.com/House-Of-Pain-Shamrocks-And-Shenanigans-Boom -Shallock-Lock-Boom/Release/229941 :) –

+1

Mein böser Zwillingsbruder, wir reden nicht über ihn. –

+0

Duplizieren: http://stackoverflow.com/questions/1457607/how-to-convert-a-gmt-timestamp-to-unix-timestamp-javascript und hier http://stackoverflow.com/questions/ 1416296/Parsing-a-Datum-in-Long-Format-from-Atom-Feed –

Antwort

85

Wenn Sie nur eine gute Datum-Parsing-Funktion benötigen, würde ich date.js betrachten. Es dauert fast jede Datumszeichenfolge, die Sie darauf werfen können, und gibt Ihnen ein JavaScript Date-Objekt zurück.

Sobald Sie ein Date-Objekt haben, können Sie seine getTime() -Methode aufrufen, die Ihnen Millisekunden seit dem 1. Januar 1970 gibt. Teilen Sie das Ergebnis einfach durch 1000, um den Unix-Timestamp-Wert zu erhalten.

Im Code sind nur date.js, dann:

var unixtime = Date.parse("24-Nov-2009 17:57:35").getTime()/1000 
+6

Sie brauchen nicht einmal die Bibliothek, um dieses Format zu parsen, oder? – Dexter

+1

Es ist erwähnenswert, dass Date.parse ohne date.js eine Zeichenfolge und einen Unix-Zeitstempel zurückgibt. Aber das Format ist sehr streng. Im Beispiel des OP müssten Sie string.replace ('-', '/') eingeben. Ansonsten bin ich mir ziemlich sicher, dass es in allen modernen Browsern funktionieren würde. Ich stimme zu, dass date.js ist jedoch viel zuverlässiger. – Marco

+4

bleib bei deiner Regexp. Eine lokalisierte Javascript-Bibliothek ist übertrieben, wenn Sie ein festes Datumsformat verwenden. Wenn Sie dieses Format kontrollieren können, sollten Sie in Betracht ziehen, etwas neutraleres und einfacher zu parsen, wie ISO8601. – peller

52

Scheint, wie getTime ist nicht auf oben Antwort funktionieren.

Date.parse(currentDate)/1000 
+0

Ich kopierte gerade Date.parse ('19 -04-2015 18:31:00 ')/1000 dies in der Browser-Konsole und es gibt NaN können Sie geben Lösung @ Chovy –

+2

Ich schätze Ihr Datum ist nicht korrekt formatiert Sie können auch Moment verwenden (Datumszeichenfolge) .unix() – chovy

+0

Datum ist in TT-MM-JJ H: i: s-Format. Mache ich falsch? –

2

können Sie verwenden Date.getTime() Funktion oder das Date Objekt selbst die, wenn sie zurückkehrt die Zeit in Millisekunden geteilt.

var d = new Date(); 

d/1000 
> 1510329641.84 

d.getTime()/1000 
> 1510329641.84 
Verwandte Themen