Ответы:
var seconds = new Date() / 1000;
Или для менее хакерской версии:
var d = new Date();
var seconds = d.getTime() / 1000;
Не забудьте округлить Math.floor()
или Math.round()
округлить до ближайшего целого числа, иначе вы можете получить очень странное десятичное число, которое вам не нужно:
var d = new Date();
var seconds = Math.round(d.getTime() / 1000);
Number(new Date())
чтобы получить число или даже +(new Date())
, или использовать любой экземпляр Date в числовом контексте, например, new Date()/1000
и Javascript будет любезно преобразовывать этот экземпляр Date в число для работы с вашими математическими уравнениями.
Попробуй это:
new Date().getTime() / 1000
Вы можете использовать Math.floor()
или Math.round()
сократить долю в миллисекундах.
Вы хотели секунды с эпохи
function seconds_since_epoch(){ return Math.floor( Date.now() / 1000 ) }
пример использования
foo = seconds_since_epoch();
Вышеуказанные решения используют свойства экземпляра. Другой способ - использовать свойство класса Date.now
:
var time_in_millis = Date.now();
var time_in_seconds = time_in_millis / 1000;
Если вы хотите, чтобы time_in_seconds было целым числом, у вас есть 2 варианта:
а. Если вы хотите соответствовать усечению в стиле C:
time_in_seconds_int = time_in_seconds >= 0 ?
Math.floor(time_in_seconds) : Math.ceil(time_in_seconds);
б. Если вы хотите просто получить математическое определение целочисленного деления, просто выступите. (Делает это целочисленное деление Python).
time_in_seconds_int = Math.floor(time_in_seconds);
Если вы хотите, чтобы целое число составляло только секунды без десятичных знаков, представляющих собой миллисекунды, используйте это:
var seconds = Math.floor(new Date() / 1000);
Мой предпочтительный способ:
var msEpoch = (+new Date());
var sEpoch = (+new Date()) / 1000;
Для получения дополнительной информации о +
прыжке вниз по кроличьей норе .
Самая простая версия:
Math.floor(Date.now() / 1000)
В chrome вы можете открыть консоль с помощью F12 и протестировать следующий код:
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;
<- что это за тайная магия?