Javascript moment.js不';t从时间戳解析时间
我正试图从一个json数据集中用moment.js解析一个时间戳。当我使用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
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');