Odpowiedzi:
var seconds = new Date() / 1000;
Lub, dla mniej hakerskiej wersji:
var d = new Date();
var seconds = d.getTime() / 1000;
Nie zapomnij zaokrąglić Math.floor()
lub Math.round()
zaokrąglić do najbliższej liczby całkowitej, w przeciwnym razie możesz otrzymać bardzo nieparzysty dziesiętny, którego nie chcesz:
var d = new Date();
var seconds = Math.round(d.getTime() / 1000);
Number(new Date())
liczbę, a nawet +(new Date())
użyć dowolnej instancji Date w kontekście liczbowym, takim jak, new Date()/1000
a JavaScript z łatwością przekonwertuje to wystąpienie Date na liczbę, aby pracować z równaniami matematycznymi.
Spróbuj tego:
new Date().getTime() / 1000
Możesz użyć Math.floor()
lub Math.round()
zmniejszyć ułamek milisekund.
Chciałeś sekund od epoki
function seconds_since_epoch(){ return Math.floor( Date.now() / 1000 ) }
przykład użycia
foo = seconds_since_epoch();
Powyższe rozwiązania wykorzystują właściwości instancji. Innym sposobem jest użycie właściwości class Date.now
:
var time_in_millis = Date.now();
var time_in_seconds = time_in_millis / 1000;
Jeśli chcesz, aby time_in_seconds był liczbą całkowitą, masz dwie opcje:
za. Jeśli chcesz zachować spójność z obcinaniem w stylu C:
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ę dzielenia liczb całkowitych, po prostu zabieraj głos. (Robi to dzielenie liczb całkowitych w Pythonie).
time_in_seconds_int = Math.floor(time_in_seconds);
Jeśli chcesz, aby liczba całkowita obejmowała tylko sekundy bez miejsc po przecinku reprezentujących nadal dołączone milisekundy, użyj tego:
var seconds = Math.floor(new Date() / 1000);
Mój preferowany sposób:
var msEpoch = (+new Date());
var sEpoch = (+new Date()) / 1000;
Więcej informacji na temat +
skoku do króliczej nory .
Najprostsza wersja:
Math.floor(Date.now() / 1000)
W chrome możesz otworzyć konsolę za pomocą F12 i przetestować następujący kod:
var date = new Date().getTime()
console.debug('date: ' + date);
if (Date.now() < date)
console.debug('ko');
else
console.debug('ok');
EPOCH means time from 01 January 1970
var date = new Date();
Following line will return the number of milliseconds from 01 Jaunary 1970
var ms = date.getTime();
Following line will convert milliseconds to seconds
var seconds = Math.floor(ms/1000);
console.log("Seconds since epoch =",seconds);
var seconds = new Date() / 1000;
<- jaki to rodzaj tajemnej magii?