Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript moment.js不';t从时间戳解析时间_Javascript_Angularjs_Momentjs - Fatal编程技术网

Javascript moment.js不';t从时间戳解析时间

Javascript moment.js不';t从时间戳解析时间,javascript,angularjs,momentjs,Javascript,Angularjs,Momentjs,我正试图从一个json数据集中用moment.js解析一个时间戳。当我使用moment.format('MMMM-Do-yyy,H:mm:ss')时,输出为12351223423的5月25日2361:00:00。所有测试的时间戳都是一样的。为什么它没有显示准确的时间/如何解决这个问题 我的角度控制器: $scope.timeFormat = function(timestamp) { var dt = moment.unix(timestamp); if(++recheckDa

我正试图从一个json数据集中用moment.js解析一个时间戳。当我使用
moment.format('MMMM-Do-yyy,H:mm:ss')
时,输出为
12351223423
5月25日2361:00:00
。所有测试的时间戳都是一样的。为什么它没有显示准确的时间/如何解决这个问题

我的角度控制器:

$scope.timeFormat = function(timestamp) {
    var dt = moment.unix(timestamp);

    if(++recheckDate % 25 == 0)
    {
        // these vars are predefined
        today = moment().startOf('day');
        yesterday = moment().subtract(1, 'days');
    }

    if(dt.startOf('day').isSame(today))
        return dt.format('[Today], H:mm:ss');
    if(dt.startOf('day').isSame(yesterday))
        return dt.format('[Yesterday], H:mm:ss');

    return dt.format('MMMM Do YYYY, H:mm:ss');
};
html代码(精简,控制器和应用程序适用于其他字段):


{{timeFormat(item.time)}

编辑:是一个在线演示。错误仍然存在。源已打开。

好吧,这花费了我比应该花费的时间更长的时间

dt.startOf('day')
修改
dt
,它不克隆


通过将原始力矩设置为一个单位力矩的起点来改变原始力矩 时间

因此,请使用:

或者使用其他不改变力矩的方法


当你遇到这样的问题时,对所有数字进行硬编码,并在任何地方使用
console.log

moment(12351223423).format('MMMM-Do-YYYY,H:mm:ss')
给我提供了1970年5月23日17:53:43的
,以及
矩.unix(12351223423).format('MMMM-Do-YYYY,H:mm:ss')给了我
“5月24日2361,18:23:43”
。我假设if条件的返回值有问题。
moment.unix(12351223423).format(“[Today],H:mm:ss”)
按预期给出了“今天18:23:43”
。所以我不能重现你的问题。您确定
item.time
具有精确到秒的时间戳值吗?Jep,应该是。实际的数据集是
$scope.data=[{line:22,file:'index.php',time:133231233}]
,其中还有一些行。所有其他值都正确打印。添加了一个在线示例,请参见编辑:)非常感谢!来自面向对象的背景,我也应该早点知道;)
<div ng-repeat="item in data">
    <span class="time">{{ timeFormat(item.time) }}</span>
</div>
if(dt.clone().startOf('day').isSame(today))
    return dt.format('[Today], H:mm:ss');
if(dt.clone().startOf('day').isSame(yesterday))
    return dt.format('[Yesterday], H:mm:ss');