unix-timestamp - js get date - Как получить временную метку в JavaScript?

js date to string / javascript / date / datetime / timestamp

Как получить временную метку в JavaScript?

Nicolás Alarcón Rapela



Answer #1

Быстрое и грязное решение:

Date.now() /1000 |0
Math.floor(Date.now() /1000);

Некоторая ботаническая альтернатива Дерека 朕 會 功夫, взятая из комментариев под этим ответом:

new Date/1e3|0

Чтобы заставить его работать в IE, вы можете сделать это (Polyfill из MDN ):

if (!Date.now) {
    Date.now = function now() {
        return new Date().getTime();
    };
}

Если вас не волнует год / день недели / летнее время, вы можете убрать его и использовать после 2038 года:

var now = (function () {
    var year = new Date(new Date().getFullYear().toString()).getTime();
    return function () {
        return Date.now() - year
    }
})();

Некоторое представление о том,как это будет выглядеть:

new Date()
Thu Oct 29 2015 08:46:30 GMT+0100 (Mitteleuropäische Zeit )
new Date(now())
Thu Oct 29 1970 09:46:30 GMT+0100 (Mitteleuropäische Zeit )

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

var relativeTime = (function () {
    var start = Date.now();
    return function () {
        return Date.now() - start
    }
})();

Предоставляя | , вы говорите интерпретатору выполнить бинарную операцию ИЛИ. Для битовых операций требуются абсолютные числа, которые превращают десятичный результат из Date.now() / 1000 в целое число.