0

我正在尝试计算现在和过去某个时间之间的时间差。至于我的网络系统(通过 API)是如何工作的,我不会在这里太深入,但基本上我会返回一系列发布时间。

我想要达到的目标:

NOW (UTC) - PUBLICATION (UTC) = DIFFERENCE IN SECONDS

我从系统返回的发布时间已经采用日期时间格式YYYY-MM-DD HH:MM:SS和 UTC 时间。

我正在使用这个 angular-2 模块:https ://www.npmjs.com/package/angular2-moment

目前实际执行的计算是:

PUBLICATION (UTC) - NOW (NOT IN UTC) = DIFFERENCE IN SECONDS

我的 HTML:

<td><time>{{nextDay | amDifference: (i['pubDate']):'seconds' : false}}</time></td>

我想做的例子:

right now UTC (2018-07-18 14:10:55) - publication time utc (2018-07-18 12:32:51) = 5884 seconds

这一定是在 html 中切换管道的问题,但我找不到任何关于如何进行计算的文档,但我在 Python 中复制了我的问题,发现它彼此之间的时间错误。非常感谢所有帮助!

4

1 回答 1

0

所以看起来你只是以错误的方式计算当前时间,所以我尝试使用 moment npm 包来获得正确的结果并且它工作正常。
尝试这个:

let currentTime = new Date().toUTCString();

并在您的 HTML 中:

{{currentTime | amDifference: '2018-07-18 14:23:45' :'seconds' : true}}

我已经尝试过了,它有效,在您的情况下,只需将“2018-07-18 14:23:45”更改为您的实际发布日期即可。

--UPDATE
你应该在 ngOnInit() 中创建 currentTime 变量,它会在组件加载时创建一次。如果你想要一个动态时间戳,假设这个日期应该每 1 秒更新一次,你需要创建 Observable 并设置每 1000 毫秒的间隔来更新时间,所以你总是会得到当前时间。

--UPDATE 2
检查此工作示例并进行比较: 示例

于 2018-07-18T16:08:42.073 回答