角矩时间差计算误差

时间:2018-07-18 14:13:27

标签: angular typescript angular2-moment

我正在尝试计算NOW与过去某个时间之间的时间差。 在这里,我不会对Web系统(通过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中复制了我的问题,发现每次都花费了错误的时间其他。感谢所有帮助!

1 个答案:

答案 0 :(得分:0)

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

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

并在您的HTML中:

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

我已经尝试过了,而且效果很好,就您而言,只需将“ 2018-07-18 14:23:45”更改为您实际的发布日期即可。

-更新
您应该在ngOnInit()中创建currentTime变量,该变量将在加载组件时创建一次。如果需要动态时间戳,可以说此日期每隔1秒更新一次,则需要创建Observable并为每1000ms设置时间间隔以更新时间,这样您就始终可以获取当前时间。

-更新2
检查此工作示例并进行比较: Example