【问题标题】:date time issue moment日期时间问题时刻
【发布时间】:2015-06-19 17:35:18
【问题描述】:

有时我的时间戳超过 10 位数。我正在使用时刻 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。

【问题讨论】:

  • 你除以 1000 究竟是什么?如果是timestamp,它应该可以正常工作。

标签: javascript date momentjs


【解决方案1】:

传统上,术语“Unix 时间戳”是指自 UTC 1970 年 1 月 1 日午夜以来经过的 秒数(不包括闰秒)。

var m = moment.unix(numberOfSeconds);

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

var m = moment(numberOfMilliseconds);

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

【讨论】:

    猜你喜欢
    • 2017-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-28
    • 2014-09-04
    • 2019-11-25
    • 2011-11-21
    相关资源
    最近更新 更多