是否有任何Node.js模块提供模糊日期字符串?

时间:2011-05-22 17:49:12

标签: javascript date time node.js

我正在考虑像“一分钟前”或“三周前”那样的字符串,这种事情。

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

3 个答案:

答案 0 :(得分:4)

我写了一个名为moment的库,它执行DateJS所做的事情,只是它更小,不修改Date.prototype,并且在浏览器和NodeJS中都有效。

npm install moment

用法:

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

它也支持i18n和自定义,所有字符串都可以进行修改。

答案 1 :(得分:2)

你可以尝试的东西是date.js:http://www.datejs.com/

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

module.exports = Date;

然后你可以要求它:

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

假设date.js位于同一文件夹中,否则修改require路径。

然后要测试的简单代码示例是:

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

答案 2 :(得分:1)

我发现require(./date)(即直接使用datejs)和来自npm install datejs的datejs不能像宣传的那样工作,至少对于节点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'