web-dev-qa-db-ja.com

Meteorテンプレートで日付をフォーマットする方法

「mm-dd-yyyy」の形式でデータベースの日付を表示する必要があります。 mongodbにISO形式で保存されているので、テンプレートでどのように変換できますか?これが私のコードです。

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

そしてテンプレートで

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

Tue Feb 04 2014 00:00:00 GMT+0530 (IST)のように表示されるようになりました

_mm-dd-yyyy_として表示する必要があります

31
I'm nidhin

次のようなグローバルヘルパーを作成できます。

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

その後、次のように使用できます。

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

このソリューションは、便利な日付操作ライブラリである moment に依存しています。モーメントを使用せずに文字列を生成する場合は、 this one を含む、これに対する多くの回答があります。

69
David Weldon

瞬間はあいさつです

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");
        }
    },

    })
6
user5699596

以下は、別のパッケージに依存せずにMeteorで機能するソリューションです。

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

これにより、「2015年12月11日」の形式の日付文字列が返されます。 getMonth()getDate()、およびgetFullYear()を好みの形式に移動します。その他のフォーマットオプションについては、 Date objectの他のメソッドを確認してください。

2
Sawant