Как вы получаете метку времени в JavaScript? - PullRequest
3690 голосов
/ 21 октября 2008

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

Что-то похожее на временную метку Unix, то есть одно число, представляющее текущее время и дату. В виде числа или строки.

Ответы [ 38 ]

16 голосов
/ 09 мая 2013

Любые браузеры, не поддерживаемые Date.now, вы можете использовать это для получения текущей даты:

currentTime = Date.now() || +new Date()
14 голосов
/ 01 июля 2013

У этого есть решение: которое преобразует метку unixtime в tim в js, попробуйте это

var a = new Date(UNIX_timestamp*1000);
var hour = a.getUTCHours();
var min = a.getUTCMinutes();
var sec = a.getUTCSeconds();
14 голосов
/ 11 марта 2015

Я узнал очень крутой способ преобразования данного объекта Date в метку времени Unix из исходного кода JQuery Cookie на днях.

Вот пример:

var date = new Date();
var timestamp = +date;
14 голосов
/ 29 мая 2015

Если вам нужен базовый способ создания метки времени в Node.js, это работает хорошо.

var time = process.hrtime();
var timestamp = Math.round( time[ 0 ] * 1e3 + time[ 1 ] / 1e6 );

Наша команда использует это для уничтожения кэша в среде локального хоста. Выходные данные /dist/css/global.css?v=245521377, где 245521377 - это отметка времени, сгенерированная hrtime().

Надеюсь, это поможет, описанные выше методы также могут работать, но я обнаружил, что это самый простой подход для наших нужд в Node.js.

13 голосов
/ 09 октября 2015

Это похоже на работу.

console.log(clock.now);
// returns 1444356078076

console.log(clock.format(clock.now));
//returns 10/8/2015 21:02:16

console.log(clock.format(clock.now + clock.add(10, 'minutes'))); 
//returns 10/8/2015 21:08:18

var clock = {
    now:Date.now(),
    add:function (qty, units) {
            switch(units.toLowerCase()) {
                case 'weeks'   :  val = qty * 1000 * 60 * 60 * 24 * 7;  break;
                case 'days'    :  val = qty * 1000 * 60 * 60 * 24;  break;
                case 'hours'   :  val = qty * 1000 * 60 * 60;  break;
                case 'minutes' :  val = qty * 1000 * 60;  break;
                case 'seconds' :  val = qty * 1000;  break;
                default       :  val = undefined;  break;
                }
            return val;
            },
    format:function (timestamp){
            var date = new Date(timestamp);
            var year = date.getFullYear();
            var month = date.getMonth() + 1;
            var day = date.getDate();
            var hours = date.getHours();
            var minutes = "0" + date.getMinutes();
            var seconds = "0" + date.getSeconds();
            // Will display time in xx/xx/xxxx 00:00:00 format
            return formattedTime = month + '/' + 
                                day + '/' + 
                                year + ' ' + 
                                hours + ':' + 
                                minutes.substr(-2) + 
                                ':' + seconds.substr(-2);
            }
};
12 голосов
/ 30 марта 2015

Для lodash и подчеркивание пользователей, используйте _.now.

var timestamp = _.now(); // in milliseconds
10 голосов
/ 06 марта 2015

Moment.js может отвлечь много боли при работе с датами Javascript.

См .: http://momentjs.com/docs/#/displaying/unix-timestamp/

moment().unix();
9 голосов
/ 14 декабря 2017

На момент написания этой статьи самый лучший ответ - 9 лет, и с тех пор многое изменилось - не в последнюю очередь, у нас есть почти универсальная поддержка нехакерского решения:

Date.now()

Если вы хотите быть абсолютно уверены, что это не сломается в каком-то древнем (до ie9) браузере, вы можете поставить его за чеком, например так:

const currentTimestamp = (!Date.now ? +new Date() : Date.now());

Это вернет миллисекунды, так как время эпохи, конечно, не секунды.

Документация MDN на Date.now

8 голосов
/ 26 октября 2013

более простой способ:

var timeStamp=event.timestamp || new Date().getTime();
6 голосов
/ 24 апреля 2014

иногда мне это нужно в объектах для вызовов xmlhttp, поэтому я делаю вот так.

timestamp : parseInt(new Date().getTime()/1000, 10)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...