#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'