我正在尝试计算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中复制了我的问题,发现每次都花费了错误的时间其他。感谢所有帮助!
答案 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