将elisp unixtime转换为js-date对象

时间:2013-09-17 17:47:04

标签: c json datetime emacs elisp

对于特定的应用程序,我需要在Javascript中处理elisp内部unix时间日期格式。 Elisp(当前时间)采用这种特殊格式:

  

current-time是`editfns.c'中的内置函数。   (当前时间)

     

返回当前时间,为1970-01-01 00:00:00以来的秒数。   时间以整数列表的形式返回(HIGH LOW USEC PSEC)。   HIGH具有秒的最高有效位,而LOW具有   最低有效16位。 USEC和PSEC是微秒和   皮秒计数。

所以我得到一个时间字符串:[21039,58064,0](21039 58064 0)的json表示)。如何使用javascript将其转换为JS Date对象?它很容易在emacs中,但这不是一个选项

1 个答案:

答案 0 :(得分:1)

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

请注意,您不需要以这种方式编写Math.pow(2, 16),因为这是一个常量表达式。这样你就可以理解发生了什么。

另请注意,您不能对浮点数使用按位运算(Number大于2 ^ 32(在JavaScript中)。所以你必须乘以而不是移位和求和而不是“或”。