Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Получить количество секунд прошедшее с 1970 года. (https://javascript.ru/forum/misc/65814-poluchit-kolichestvo-sekund-proshedshee-s-1970-goda.html)

Артист 09.11.2016 09:57

Получить количество секунд прошедшее с 1970 года.
 
Цитата:

Сообщение от Илья Кантор
dateObj = new Date(dateVal)

dateVal
Если параметр является числовым, то он интерпретируется как количество миллисекунд от 1-Янв-1970 00:00.

Что - то не работает:
var now = new Date(0)
alert('date = ' + now)


date = Thu Jan 01 1970 04:00:00 GMT+0400 (Арабское время (зима))

Dilettante_Pro 09.11.2016 10:57

Артист,
Цитата:

Сообщение от Артист
Что - то не работает:

Как раз работает в полном соответствии с описанием
Цитата:

Сообщение от https://learn.javascript.ru/datetime
Создает объект Date, значение которого равно количеству миллисекунд (1/1000 секунды), прошедших с 1 января 1970 года GMT+0.

Для GMT+0400 получается 04:00:00, что соответствует 00:00:00 для GMT+0

Ostic 09.11.2016 12:10

var t = Date.now();

Deff 09.11.2016 14:12

var sek= parseInt(+new Date()/1000);
alert(sek)
alert(new Date(sek*1000));

Артист 09.11.2016 14:58

Ну так там в описании было написано миллисекунд, а не формат даты ))

То, что нужно, спасибо )
parseInt(+new Date()/1000)

Ostic 09.11.2016 20:47

Цитата:

Сообщение от Deff (Сообщение 434547)
var sek= parseInt(+new Date()/1000);
alert(sek)
alert(new Date(sek*1000));

зачем объект Date то создавать со всеми его методами, свойствами и пр. и еще и делить объект на 1000 и парсить из строки, деленный на 1000 объект? тогда уж
var obj = new Date;
var msec = obj.getTime();

но и тут числовое значение возвращается, а не строка
Цитата:

Функция parseInt() принимает строку в качестве аргумента и возвращает целое число в соответствии с указанным основанием системы счисления.
вызываем статический метод без создания объекта и просто получаем в милисекундах. На этот случай есть еще один статический метод Math.round();
Итого:
var secUnix = Math.round(Date.now()/1000);

Артист 09.11.2016 21:12

Спасибо )

Deff 10.11.2016 08:31

Ostic,
Гы... Мну показал что Первая строка var sek= parseInt(+new Date()/1000);
Получает реально секунды до 70года, (см Заголовок темы)
Последующее обратное преобразование это подтверждает


Часовой пояс GMT +3, время: 23:14.