如何处理网页上的直播时间?
How to handle live time on webpage?
我看到一些网页(例如 facebook)在计算帖子的 created/posted 日期。例如现在发布、5 分钟前发布、昨天 14 点发布等等。
我现在正在开发一个 reactJS 网页,这个功能会非常好。我正在向客户端发送模型,但这些仅用于生成反应代码,然后不再使用。
所以问题是,解决这个问题的最佳方法是什么?我是否应该创建一个使用的特殊反应日期时间组件?如果是这样,它会是什么样子?
编辑:抱歉不清楚。时间可以在服务器上计算,但我需要它在客户端实时倒计时。
看看moment.js,特别是"Display Time from now"
moment([2007, 0, 29]).fromNow(); // 4 years ago
正如我在评论中提到的,我一直使用Moment JS. Again, it does Front End and server side. This functionality可能是你可以使用的:
var a = moment([2007, 0, 29]);
var b = moment([2007, 0, 28]);
a.diff(b, 'days') // 1
您需要定期触发重新渲染,以便生成自显示以来的时间的任何组件都将更新。
在顶层使用 setInterval 执行此操作并不理想,但却是最简单的方法。
另一种简单的方法是创建一个组件,该组件采用要比较的时间道具,并强制自己每隔一段时间重新渲染以更新显示的时间。
另一种方法是保留来自已安装时间显示组件的回调的静态列表,这会强制组件重新呈现并循环遍历它们并定期调用它们。
我看到一些网页(例如 facebook)在计算帖子的 created/posted 日期。例如现在发布、5 分钟前发布、昨天 14 点发布等等。
我现在正在开发一个 reactJS 网页,这个功能会非常好。我正在向客户端发送模型,但这些仅用于生成反应代码,然后不再使用。
所以问题是,解决这个问题的最佳方法是什么?我是否应该创建一个使用的特殊反应日期时间组件?如果是这样,它会是什么样子?
编辑:抱歉不清楚。时间可以在服务器上计算,但我需要它在客户端实时倒计时。
看看moment.js,特别是"Display Time from now"
moment([2007, 0, 29]).fromNow(); // 4 years ago
正如我在评论中提到的,我一直使用Moment JS. Again, it does Front End and server side. This functionality可能是你可以使用的:
var a = moment([2007, 0, 29]);
var b = moment([2007, 0, 28]);
a.diff(b, 'days') // 1
您需要定期触发重新渲染,以便生成自显示以来的时间的任何组件都将更新。
在顶层使用 setInterval 执行此操作并不理想,但却是最简单的方法。
另一种简单的方法是创建一个组件,该组件采用要比较的时间道具,并强制自己每隔一段时间重新渲染以更新显示的时间。
另一种方法是保留来自已安装时间显示组件的回调的静态列表,这会强制组件重新呈现并循环遍历它们并定期调用它们。