2012-02-26 11 views

risposta

154
var seconds = new Date()/1000; 

Oppure, per una versione meno hacky:

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

Non dimenticare di Math.floor() o Math.round() per arrotondare al numero intero più vicino o si potrebbe ottenere un decimale molto strano che non si desidera :

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

Prova questa:

new Date().getTime()/1000 

È possibile utilizzare Math.floor() o Math.round() per tagliare la frazione di millisecondi.

+6

... Penso che anche 'new Date()/1000' dovrebbe funzionare. –

5

È possibile creare un oggetto Date (che avrà l'ora corrente) e quindi chiamare getTime() per ottenere il ms dall'epoca.

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

Se si desidera secondi, poi dividerlo per 1000:

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

mio modo preferito:

var msEpoch = (+new Date()); 
var sEpoch = (+new Date())/1000; 

Per ulteriori informazioni sul +jump down the rabbit hole.

8

Le soluzioni precedenti utilizzano le proprietà dell'istanza. Un altro modo è quello di utilizzare la proprietà di classe Date.now:

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

Se si desidera time_in_seconds ad essere un numero intero si hanno 2 opzioni:

a. Se si vuole essere coerente con troncamento stile C:

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

b. Se vuoi semplicemente avere la definizione matematica della divisione intera da tenere, prendi semplicemente la parola. (La divisione intera di Python lo fa).

time_in_seconds_int = Math.floor(time_in_seconds); 
28

Si voleva secondi dal periodo

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

esempio utilizzare

foo = seconds_since_epoch(); 
+3

Questa dovrebbe essere la risposta in quanto prende in considerazione il decimale. –

5

Se volete solo pochi secondi come un numero intero senza decimali che rappresentano millisecondi ancora attaccati, utilizzare questo :

var seconds = Math.floor(new Date()/1000); 
Problemi correlati