2013-09-17 4 views
0

для конкретного приложения Мне нужно обработать внутренний формат даты unisp в формате Javascript в Javascript. Elisp (текущее время) поставляется с этим специальным форматом:Преобразование elisp unixtime в объект js-date

Текущее время - это встроенная функция в `editfns.c '. (текущее время)

Возврат текущего времени, начиная с 1970-01-01 00:00:00. Время возвращается как список целых чисел (HIGH LOW USEC PSEC). HIGH имеет самые значащие бит секунд, в то время как LOW имеет наименее значимых 16 бит. USEC и PSEC являются микросекундными и цифрами пикосекунд.

Так i'm получить строку времени: [21039,58064,0] (JSON представление о (21039 58064 0)). Как я могу преобразовать это в объект JS Date с javascript? Его легко в Emacs, но это не вариант

ответ

1
Date(21039 * Math.pow(2, 16) + 58064); 

Обратите внимание, что вам не нужно писать именно так, Math.pow(2, 16), потому что это константа. Это значит, что вы понимаете, что происходит.

Также обратите внимание, что вы не можете использовать побитовые операции с поплавками (Number s больше, чем 2^32 на языке JavaScript). Таким образом, вам нужно умножить вместо смещения и суммы вместо «или» ing.

+0

это действительно работа для меня. пришлось умножить результат на 1000, хотя для получения правильного unixtime ... – zip

+0

@zip О, да, правильно, это должно быть миллисекунды, а не секунды. –

Смежные вопросы