我正在尝试使用jquery.timeago插件在我的应用程序中添加timeago的功能。
我使用敲除绑定来显示时间列表。
它在chrome中运行良好,但无法在其他浏览器中显示数据。
以下是我的脚本代码:
<script src="Scripts/jquery-2.1.1.min.js"></script>
<script src="Scripts/knockout-3.2.0.js"></script>
<script src="Scripts/jquery.timeago.js"></script>
<script>
$(function () {
var viewModel = {
arr: [{
msgdate: new Date()
}, {
msgdate: new Date()
}]
};
ko.bindingHandlers.timeago = {
update: function (element, valueAccessor) {
var value = ko.utils.unwrapObservable(valueAccessor());
var $this = $(element);
$this.attr('title', value);
if ($this.data('timeago')) {
var datetime = $.timeago.datetime($this);
var distance = (new Date().getTime() - datetime.getTime());
var inWords = $.timeago.inWords(distance);
$this.data('timeago', { 'datetime': datetime });
$this.text(inWords);
} else {
$this.timeago();
}
}
};
ko.applyBindings(viewModel);
});
</script>Html部件如下所示:
<div data-bind="foreach: arr">
<div class="timeago" data-bind="timeago: msgdate"></div>
</div>这里的例子也是小提琴:http://jsfiddle.net/ugqkd60p/
请帮我解决这个问题。谢谢。
发布于 2014-10-30 14:46:40
FF和IE中的date.parse方法似乎无法解析默认的日期时间字符串,例如:
Thu Oct 30 2014 15:25:06 GMT+0100 (Central Europe Standard Time)无论如何,jquery.timeago对iso8601日期格式有明确的支持,所以只需使用在所有浏览器中都能工作的方法:
$this.attr('title', value.toISOString());演示JSFiddle。
https://stackoverflow.com/questions/26655539
复制相似问题