【问题标题】:How to convert date into timeago如何将日期转换为时间前
【发布时间】:2015-06-16 11:24:20
【问题描述】:

我正在尝试使用 jquery.timeago.js 将日期字段转换为“timeago”格式

$("time.timeago").timeago();

var userSpan = document.createElement("span");
userSpan.setAttribute("class", "text-muted");
userSpan.appendChild(document.createTextNode(message.usernameSender +" | "));
var timeTag = document.createElement("time");
timeTag.setAttribute("class", "timeago");
timeTag.setAttribute("datetime",document.createTextNode(message.date));
userSpan.appendChild(timeTag);

此 javascript 将生成以下代码

<span class="text-muted">user1 | <time class="timeago" datetime="[object Text]"></time></span>

我的问题是 datetime 的结果是 [object Text]

我错过了什么?

谢谢

【问题讨论】:

    标签: javascript html time timeago


    【解决方案1】:

    我的问题是 datetime 的结果是 [object Text]

    嗯,是的,因为你告诉 JavaScript 这样做:

    timeTag.setAttribute("datetime",document.createTextNode(message.date));
    

    试试

    timeTag.setAttribute("datetime", message.date);
    

    属性值是字符串,而 DOM 节点(包括文本节点)是对象。

    【讨论】:

    • 非常感谢。我还有一个小问题。日期时间字段现在填充为 1434389197000 而不是 2015-06-10 16:41:09。你知道解决这个问题的快速方法吗
    • 嗯,我认为message.date 的格式已经正确。您可以使用var d = new Date(parseInt(message.date)) 获取Date 对象,然后使用getDay() 等方法构造您的日期字符串。或者您可以使用像 moment.js 这样的库,就像 Mohamad shiralizadeh 建议的那样。
    • 非常感谢。我仍然需要转换日期,但这是另一个问题。感谢您的帮助
    猜你喜欢
    • 2011-04-14
    • 2010-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-14
    相关资源
    最近更新 更多