Как отформатировать дату в шаблоне метеор

Мне нужно отобразить дату из базы данных в формате "mm-dd-yyyy". Как его сохранить в формате ISO в mongodb как я могу преобразовать его в шаблон? Вот мой код.

       Template.templatename.vname = function () {      
        return Posts.find(); 
        }

И в шаблоне

{{#each vname}}
    {{ date }} 
{{/each}}

Теперь его получение отображается как Tue Feb 04 2014 00:00:00 GMT+0530 (IST)

Мне нужно показать это как mm-dd-yyyy

Ответы

Ответ 1

Вы можете создать глобальный помощник, например:

Template.registerHelper('formatDate', function(date) {
  return moment(date).format('MM-DD-YYYY');
});

Затем вы можете использовать его так:

{{#each vname}}
  {{formatDate date}}
{{/each}}

Это решение зависит от момента, который является удобной библиотекой манипулирования датами. Если вы предпочитаете создавать строку без использования моментов, для этого есть ряд ответов, включая этот.

Ответ 2

момент - приветствие lib

meteor add momentjs:moment

использовать момент в помощнике

Template.home.helpers({
    momentFormate: function(time) {

        if ((moment().unix() - moment(time).unix()) < 3600) {
            return moment(time).fromNow();
        } else {
            return moment(time).format("YYYY-MM-DD HH:mm");
        }
    },

    })

Ответ 3

Вот решение, которое работает в Meteor без какой-либо зависимости от другого пакета:

// global helper
Template.registerHelper('formatDate', function(date) {
    return monthNames[date.getMonth()] + " " + date.getDate() + ", " + date.getFullYear();
});

Это вернет строку даты, отформатированную как "11 декабря 2015 года". Перемещение по getMonth(), getDate() и getFullYear() для вашего предпочтительного формата. Для получения дополнительных параметров форматирования проверьте другие методы объекта Date.