2012-06-23 15 views

Odpowiedz

12

Wystarczy utworzyć Date obiekt z nim i zrobić .getTime() lub użyj Date.parse():

var d = new Date("Wed Jun 20 19:20:44 +0000 2012"); 
d.getTime(); //returns 1340220044000 

//OR 

Date.parse("Wed Jun 20 19:20:44 +0000 2012"); //returns 1340220044000 

Działa świetnie, jeśli „ludzki czas” string jest w formacie, że data konstruktor rozumie (czego przykładem ty pisał jest).


EDIT

Zrealizowany może oznaczać uniksowy znacznik czasu, który jest sekundy upłynęły od epoki (nie takie jak znaczniki czasu ms JS). W takim przypadku po prostu podzielić przez 1000 timestamp JS:

//if you want to truncate ms instead of rounding just use Math.floor() 
Math.round(Date.parse("Wed Jun 20 19:20:44 +0000 2012")/1000); //returns 1340220044 
+0

Daje mi "Nieprawidłowa datę". –

+0

Działa dobrze dla mnie: http://jsfiddle.net/sv9p3/ – Chad

+0

'NaN' na obu liczbach. Wynika to z ustawień narodowych i właśnie dlatego analizowanie ludzkich łańcuchów jest takim problemem. –

5

Teoretycznie z Date.parse(). W praktyce jednak z tysiącami różnych sposobów wyrażania daty i czasu (z których najmniej jest nazwami dni/miesięcy w różnych językach), znacznie łatwiej jest uzyskać datę w jej częściach składowych, zamiast próbować przeczytać strunowy.

0

Wygląda na to, że podana data/czas podano w sekundach, a nie w milisekundach. Musisz więc podzielić przez 1000, aby uzyskać datę/czas w sekundach.

//Gets date in seconds 
var d1 = Date.parse('Wed Jun 20 19:20:44 +0000 2012')/1000; 
alert(d1); 

Przykład: http://jsfiddle.net/AUt9K/

0

Wystarczy dodać następujący: new Date().getTime()

To powinno Ci datownik aktualnego czasu. Przykład: var url = "http://abc.xyz.com/my-script.js?v=" + new Date().getTime();

Powiązane problemy