Существуют ли какие Node.js модули, которые предоставляют нечеткие строки даты?

#javascript #date #time #node.js

#javascript #Дата #время #node.js

Вопрос:

Я имею в виду строки типа «одну минуту назад» или «3 недели назад», что-то в этомроде.

Я мог бы легко перенести найденные примеры на другие языки, но нет необходимости изобретать велосипед, если этот материал уже существует.

Комментарии:

1. Это может помочь . Показывает нечеткую дату на основе текущего времени.

Ответ №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 находится в той же папке, в противном случае измените требуемый путь.

Тогда простой пример кода для тестирования — это:

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

Комментарии:

1. Похоже, что кто-то уже сделал это и опубликовал как пакет узла, доступный через npm (npm install datejs).

2. Ha лучше этого не становится: D

3. Ни npm install datejs ни использование модифицированных datejs напрямую не работают, как указано в Node v0.4.7

Ответ №3:

Я обнаружил, что require(./date) (т. Е. используя datejs напрямую) и datejs из npm install 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'