Как я могу получить секунды с эпохи в Javascript?

В Unix я могу запустить date '+%s', чтобы получить количество секунд с эпохи. Но мне нужно запросить это в интерфейсе браузера, а не в фоновом режиме.

Есть ли способ узнать секунды с Эпохи в JavaScript?

Ответ 1

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);

Ответ 2

Попробуйте следующее:

new Date().getTime() / 1000

Вы можете использовать Math.floor() или Math.round() для сокращения доли миллисекунд.

Ответ 3

Вам нужны секунды с эпохи

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

Пример использования

foo = seconds_since_epoch();

Ответ 4

В приведенных выше решениях используются свойства экземпляра. Другой способ - использовать свойство класса 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);

Ответ 5

Вы можете создать объект Date (который будет иметь текущее время в нем), а затем вызвать getTime() для получения ms с эпохи.

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

Если вы хотите секунд, то разделите его на 1000:

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

Ответ 6

Если вы хотите, чтобы только секунды как целое число без десятичных знаков, представляющих миллисекунды, все еще прикрепленные, используйте это:

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