2012-02-26 10 views

Odpowiedz

154
var seconds = new Date()/1000; 

Lub za mniej hacky wersji:

var d = new Date(); 
var seconds = d.getTime()/1000; 

Nie zapomnij Math.floor() lub Math.round() zaokrąglić do najbliższej liczby całkowitej lub może uzyskać bardzo dziwne po przecinku, że nie chcesz :

var d = new Date(); 
var seconds = Math.round(d.getTime()/1000); 
47

Spróbuj tego:

new Date().getTime()/1000 

Możesz chcieć użyć Math.floor() lub Math.round(), aby wyciąć ułamek milisekundy.

+6

... Myślę, że nawet "nowa data()/1000" powinna działać. –

5

Można utworzyć obiekt Date (który będzie zawierał bieżący czas), a następnie zadzwonić pod numer getTime(), aby uzyskać ms od epoki.

var ms = new Date().getTime(); 

Jeśli chcesz sekund, a następnie podzielić przez 1000:

var sec = new Date().getTime()/1000; 
8

Powyższe rozwiązania wykorzystują właściwości instancji. Innym sposobem jest użycie właściwości klasy Date.now:

var time_in_millis = Date.now(); 
var time_in_seconds = time_in_millis/1000; 

Jeśli chcesz time_in_seconds być liczbą całkowitą masz 2 opcje:

się. Jeśli chcesz być zgodne z C stylu obcinania:

time_in_seconds_int = time_in_seconds >= 0 ? 
         Math.floor(time_in_seconds) : Math.ceil(time_in_seconds); 

b. Jeśli chcesz mieć tylko matematyczną definicję podziału całkowitoliczbowego, po prostu zabierz głos. (Dzielenie liczb całkowitych w Pythonie to robi).

time_in_seconds_int = Math.floor(time_in_seconds); 
28

Chciałeś sekund od epoki

function seconds_since_epoch(){ return Math.floor(Date.now()/1000) } 

przykład użyć

foo = seconds_since_epoch(); 
+3

To powinna być odpowiedź, ponieważ bierze pod uwagę dziesiętny. –

5

Jeśli chcesz tylko kilka sekund w postaci liczby całkowitej bez miejsc dziesiętnych reprezentujących milisekund wciąż dołączać, użyj tego :

var seconds = Math.floor(new Date()/1000); 
Powiązane problemy