gpt4 book ai didi

javascript - moment.js 不从时间戳解析时间

转载 作者:行者123 更新时间:2023-11-30 17:04:15 29 4
gpt4 key购买 nike

我正在尝试从 json 数据集中使用 moment.js 解析时间戳。当我使用 moment.format('MMMM Do YYYY, H:mm:ss') 时,输出即 May 25th 2361, 0:00:00 for 12351223423。所有测试的时间戳都是一样的。为什么它不显示确切的时间/如何解决这个问题?

我的 Angular Controller :

$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 代码(精简后, Controller 和应用程序适用于其他领域):

<div ng-repeat="item in data">
<span class="time">{{ timeFormat(item.time) }}</span>
</div>

编辑:Here是一个在线演示。错误仍然存​​在。来源在 github .

最佳答案

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

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

moment().startOf(String);
Mutates the original moment by setting it to the start of a unit of time.

所以使用clone() :

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');

或者使用其他不修改时刻的方法。

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

关于javascript - moment.js 不从时间戳解析时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28308548/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com