Ответ 1
Решение довольно простое, и, возможно, кто-то найдет его полезным. В большинстве проектов у вас есть несколько форматов даты, которые вы хотите использовать. Таким образом, это хороший подход для определения ваших форматов с читаемыми именами.
В этом примере я взял "короткий" и "длинный", но вы увидите, что его очень легко расширить.
Итак, я создал объект в моем клиенте Script:
var DateFormats = {
short: "DD MMMM - YYYY",
long: "dddd DD.MM.YYYY HH:mm"
};
Кроме того, я создал Handlebars Helper "formatDate".
Отредактировано: теперь вы должны использовать пользовательский интерфейс вместо Handlebars
// Deprecated since version 0.8.0
Handlebars.registerHelper("formatDate", function(datetime, format) {
// Use UI.registerHelper..
UI.registerHelper("formatDate", function(datetime, format) {
if (moment) {
// can use other formats like 'lll' too
format = DateFormats[format] || format;
return moment(datetime).format(format);
}
else {
return datetime;
}
});
Как вы можете видеть, я использую moment.js lib в моем помощнике. Чтобы установить его, просто введите meteor add momentjs:moment
из командной строки.
И теперь, везде в моих шаблонах я могу использовать его с двумя параметрами, например:
{{formatDate MyISOString "short"}} // 02 September - 2013
{{formatDate MyISOString "long"}} // Monday 02.09.2013 18:00
Если вы хотите создать свои собственные форматы, посмотрите на Actionsjs docs http://momentjs.com/docs/
Счастливое кодирование!