1

我有一个带有liveticker的站点,它加载新的论坛事件并将它们添加到 HTML 表中。

对于时间字段,我正在 ajax 加载每个事件的日期时间(例如2013-02-15 17:28:03),并通过jquery 插件可爱时间将它们转换为人类可读的格式,例如22 minutes ago.

CuteTime 的问题是最近的版本(从 2010 年开始)在处理动态加载的 AJAX 数据方面存在一些问题。

目前的解决方案似乎有点工作:

1.首先ajax调用将整个论坛事件加载为html表,然后我分配了cutetime插件:

// initial load at page startup
$('#responsecontainer').load('./liveticker', {ajax:1}, function() {
    // convert datetime to readable date format
    $('.timestamp').cuteTime();
});

2.然后我每 30 秒检查一次新事件,并在每次加载的数据上分配 cuteTime:

$('#responseEvents').load('./liveticker', {ajax:lastevent}, function() {
    // stuff...
    // convert datetime to readable date format
    $('.timestamp').cuteTime();
})

这似乎适用于 Firefox 和 Chrome。但是,在 Internet Explorer 9 中,所有$(.timestamp)元素都分配了相同的文本:just now.

有谁知道这个错误/问题的解决方案?

--

注意:在cutetime-site 上,我发现了一条关于ajax的评论。那里有人陈述了他的解决方法:

我不得不破解我的应用程序来制作额外的字段,所以我首先将所有值复制到我所有的跨度中,然后调用cuteTime。

但我不确定这是否以任何方式与我现在面临的 Internet Explorer 错误有关......

4

1 回答 1

1

这不是 AJAX 调用。实际上,我使用了正常的日期时间格式(来自 mysql)并尝试使用可爱时间转换该格式。

阅读开发者的网站,我偶然发现了这句话:

时间戳必须是有效的 Date().parse 'able' 格式

也:

如果既不存在可爱时间属性也不存在有效对象文本,则假定时间戳为“现在”。


答对了!现在我将日期时间格式化为 ISO8601 日期格式服务器站点:

$timeCode = date("c", strtotime( $row['datetime'] ));

我得到这种格式的日期:2013-02-17T15:26:21+01:00它适用于所有浏览器中的 js-conversion!

于 2013-02-17T14:32:54.087 回答