日期时间问题时刻

date time issue moment

有时我的时间戳超过 10 位。我正在使用 moment js 函数是:

moment.unix(timestamp).format('YYYY-MM-DD HH:mm')

当它是 10 位数字时给我完美的答案。但超过 10 位时。不知道为什么它给了我错误的年份。

示例: 正确:1433167001 给我 2015-06-01 13:56 不正确:1433287744646 给我日期:47389-01-29 12:37

我也试过 /1000 不工作

代码

 - var timestamp =''
                                - if (typeof(res[j]['timestamp']) !== 'undefined'){
                                    - timestamp = Math.floor(res[j]['timestamp']);
                                    - if (timestamp.length > 10) {
                                        - timestamp = Math.floor(timestamp/1000)
                                    - }
                                -}

                                tr
                                    td #{index++}
                                    td #{results[i]['userInfo']['username']}
                                    td #{typeName}
                                    td #{value}
                                    td #{moment.unix(timestamp).format('YYYY-MM-DD HH:mm')}

以上代码在jade中

传统上,术语 "Unix Timestamp" 指的是自世界标准时间 1970 年 1 月 1 日午夜以来经过的 的数量(不计算闰秒)。

var m = moment.unix(numberOfSeconds);

但是,JavaScript 和许多其他平台根据 毫秒 而不是秒来定义它们的时间戳。

var m = moment(numberOfMilliseconds);

了解数据来源以了解时间戳是以秒还是毫秒为单位很重要。如果您根据位数进行猜测,那么您将排除一系列可能的值。