【问题标题】:display time in a web page在网页中显示时间
【发布时间】:2011-01-11 18:14:03
【问题描述】:

我有一个页面,其中列出了帖子的所有 cmets。在每条评论旁边,我都有一个完整格式的时间值,包括日期/时间 (2010-01-02 11:11:20)。

我知道我可以在显示之前用PHP格式化它,所以它显示;

posted 40 secs ago 
posted 5 days ago

但这不会有效,因为我将在页面生成后对其进行缓存。

我看到他们有某种 java 脚本来显示它,所以它在客户端的浏览器上运行:

alt text http://img528.imageshack.us/img528/5442/35118769.png

所以基本上我需要一个在浏览器上运行的 java 脚本,而不是显示我的日期/时间显示“4 小时前发布”。欢迎所有帮助。

【问题讨论】:

  • 这不是javascript,只是html:<p class="label-value" title="2010-02-01 14:54:31Z">today</p>

标签: php javascript jquery datetime


【解决方案1】:

以 parseDate 方法接受的格式或作为日期的构造函数参数输出您的日期。将它们放在一些节点中,稍后可以很容易地被 javascript 框架(或您自己的方法)抓取,然后对这些抓取的值执行一些 time/datediff 方法并替换节点的内容。

【讨论】:

    【解决方案2】:

    你想要的声音:timeago: a jQuery plugin

    Timeago 是一个 jQuery 插件,可以轻松支持自动更新模糊时间戳(例如“4 分钟前”或“大约 1 天前”)。

    我进一步引用:

    • 避免使用日期为“1 分钟前”的时间戳,即使该页面是 10 分钟前打开的; timeago 自动刷新。

    • 您可以在您的网络应用程序中充分利用页面缓存,因为时间戳不是在服务器上计算的。

    所以它应该适合您的需求。

    【讨论】:

    • +1 - 这个插件很好找。似乎完美解决了OP的问题。
    • +1 几天前我看到了这个插件,并期待在即将到来的项目中使用它。很好的解决方案。
    • 谢谢,有趣的一点:我在 SO 上看到它作为右栏中的广告(几周前);)
    • 谢谢大家。我倾向于忽略广告,我猜我错了:)
    【解决方案3】:

    您可以在渲染页面时将页面的“时间戳”放入页面中。这是不变的固定时间。查看 PHP 的 time 函数 (http://www.php.net/manual/en/function.time.php)。它为您提供了自 UNIX 时代开始以来的几秒钟。

    然后,当页面运行时,使用 Javascript 的 Date 对象。它封装了类似的东西。在一个新的 Javascript Date 对象上执行getTime(),这将使您也获得自 UNIX 纪元以来的秒数。

    从另一个中减去一个以获得从那时到现在的经过时间,并执行任何您需要的漂亮格式以使其正确显示在您的页面中。

    编辑:另请参阅 Felix 关于 timeago 的回答,这是一个非常棒的工具,可以自动为您完成此过程的后半部分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-15
      • 2021-03-14
      • 1970-01-01
      • 2014-10-15
      • 1970-01-01
      • 2018-12-01
      • 2017-08-27
      • 2012-10-24
      相关资源
      最近更新 更多