【问题标题】:Are there any Node.js modules that provide fuzzy date strings?是否有任何提供模糊日期字符串的 Node.js 模块?
【发布时间】:2011-05-22 17:49:11
【问题描述】:

我正在考虑诸如“一分钟前”或“3 周前”之类的字符串。

我可以轻松移植我在其他语言中找到的示例,但如果这些东西已经存在,则无需重新发明轮子。

【问题讨论】:

标签: javascript date time node.js


【解决方案1】:

我编写了一个名为 moment 的库,它与 DateJS 一样,只是它更小,不会修改 Date.prototype,并且可以在浏览器和 NodeJS 中运行。

npm install moment

用法:

moment(1316369911638).fromNow() // "3 minutes ago"

它也支持 i18n 和自定义,所有字符串都被公开以供修改。

【讨论】:

    【解决方案2】:

    你可以试试 date.js:http://www.datejs.com/

    要使其与脚本最底部的节点兼容,请添加以下行:

    module.exports = Date;

    那么你可以要求它:

    var date = require('./date');

    假设date.js在同一个文件夹,否则修改require路径。

    那么一个简单的测试代码示例是:

    console.log( date.today().next().thursday() )

    【讨论】:

    • 看起来有人已经这样做了,并将其发布为可通过 npm (npm install datejs) 获得的 Node 包。
    • 哈没有比这更好的了:D
    • npm install datejs 不使用修改后的 datejs 都不会像 Node v0.4.7 中宣传的那样直接工作
    【解决方案3】:

    我发现require(./date)(即直接使用 datejs)和来自 npm install datejs 的 datejs 不能像宣传的那样工作,至少在 node v0.4.9 中是这样。

    datetime 模块似乎对我有用:

    $ npm install datetime
    datetime@0.0.2 ./node_modules/datetime 
    └── vows@0.5.8
    $ node --version
    v0.4.9
    $ node
    > var datetime = require('datetime')
    > now = new Date()
    Thu, 14 Jul 2011 05:50:06 GMT
    > # wait for a bit
    ... 
    ... 
    > datetime.formatAgo(now)
    '18 seconds ago'
    

    【讨论】:

      猜你喜欢
      • 2013-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多