【问题标题】:How to handle live time on webpage?如何处理网页上的直播时间?
【发布时间】:2015-02-25 17:37:06
【问题描述】:

我已经看到一些网页(例如 facebook),其中帖子的创建/发布日期正在计算中。例如现在、5 分钟前、昨天 14 点等发布。

我现在正在开发一个 reactJS 网页,这个功能非常好。我正在向客户端发送模型,但这些模型仅用于生成反应代码,然后不再使用。

所以问题是,解决这个问题的最佳方法是什么?我应该创建一个使用的特殊反应日期时间组件吗?如果是这样,它会是什么样子?

编辑:抱歉不清楚。时间可以在服务器上计算,但我需要它在客户端实时倒计时。

【问题讨论】:

  • 我一直用momentjs.com 非常棒。前端和服务器端。
  • 目前还不清楚您需要什么帮助。似乎您在要求某人编写解决方案?你不只需要发送总时间......从当前时间减去过去,然后使用你想要的任何方式/框架显示它吗?

标签: javascript time reactjs


【解决方案1】:

您需要定期触发重新渲染,以便生成显示时间后的任何组件都会更新。

在顶层使用 setInterval 这样做并不理想,但却是最简单的方法。

另一种简单的方法是创建一个组件,该组件需要一个用于比较时间的道具,并强制自己每隔一段时间重新渲染以更新显示的时间。

另一种方法是保留来自已安装时间显示组件的静态回调列表,这会强制组件重新渲染并循环它们并定期调用它们。

【讨论】:

    【解决方案2】:

    查看 moment.js,特别是“从现在开始的显示时间”

    moment([2007, 0, 29]).fromNow(); // 4 years ago
    

    http://momentjs.com/docs/#/displaying/fromnow/

    【讨论】:

    • 谢谢,但我正在寻找一种简单的方法来计算客户端上的时间。
    【解决方案3】:

    正如我在评论中提到的,我一直使用Moment JS。同样,它执行前端和服务器端。 This functionality 可能是你可以使用的:

    var a = moment([2007, 0, 29]);
    var b = moment([2007, 0, 28]);
    a.diff(b, 'days') // 1
    

    【讨论】:

    • 对不起,不清楚,我可以在服务器上手动计算,没问题,但我寻求的是客户端的实时更新,所以当它过去 5 分钟时,它会显示已发布 5 分钟前等,无需重新加载页面。
    猜你喜欢
    • 1970-01-01
    • 2018-02-20
    • 1970-01-01
    • 2020-03-16
    • 2022-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-06
    相关资源
    最近更新 更多