1

テンプレート内でタイムスタンプをフォーマットするにはどうすればよいですか?チャットの作成に関するチュートリアルに従いましたが、機能します。今、私はメッセージを削除したり、メッセージの前に時間を置くなどのいくつかの機能でチャットを拡張しました。しかし、テンプレート内に書き込む{{timestamp}}と、UNIXタイムスタンプが与えられます。「6:12」のように時間を表示するようにフォーマットするにはどうすればよいですか。タイムスタンプはMessagesコレクションに保存されています。

内部のタイムスタンプを操作するのに適した場所です

Template.Messages.created = function ( ) { ... }

働き?

前もって感謝します。

4

5 に答える 5

4

この場合は必須ではありませんが、Moment.jsを使用することをお勧めします。これにより、Javascript で日付と時刻を簡単に操作できます。

Atmosphere からパッケージをインストールするか、スクリプトをディレクトリにダウンロードしclientてから、以下のようなヘルパーを使用できます。

Template.Messages.helpers({
    created: function() { 
        var time = moment(this.timestamp);
        return time.format('h:mm a');
    }
}); 

注意:timestampは context オブジェクトの var であると想定しています。

于 2012-09-11T13:32:19.793 に答える
1

多くの便利なハンドルバー ヘルパーを提供するこのパッケージスワッグを見てください。

その日付/時刻ヘルパーをチェックしてください: https://github.com/elving/swag#dates

次のように簡単に日付/時刻をフォーマットできます。

var date = new Date()


{{formatDate date "%m/%d/%Y"}}
{{formatDate date "%I:%M%p"}}
{{formatDate date "%F"}}
{{formatDate date "%Y%m%dT%H%M%S%z"}}

07/26/2015
11:38PM
2015-08-28
20150828T233805-0004
于 2015-08-28T05:01:33.580 に答える
1

ライブラリを避けてJavascript Dateオブジェクトを操作したい場合は、私が提案することをお勧めします(これは、日付がISO形式2010-06-15T00:00:00であると仮定し、Date.toISOString()から取得できます):

format メソッドを実装し ( printf/string.format に相当する JavaScript に感謝します)、つまり lib/utils.js に配置します。

String.prototype.format = function(args, index) {
  return this.replace(/{(\w+)}/g, function(match, number) {
    return typeof args[index[number]] != 'undefined'
      ? args[index[number]]
      : match
    ;
  });
};

ヘルパーを作成する (client/client.js に入れる)

Handlebars.registerHelper('formatDate',function(input, pattern){
    var iso = /^(\d{4})(?:-?W(\d+)(?:-?(\d+)D?)?|(?:-(\d+))?-(\d+))(?:[T ](\d+):(\d+)(?::(\d+)(?:\.(\d+))?)?)?(?:Z(-?\d*))?$/;
    if(this[input]) {
        var parts = this[input].match(iso);
             return pattern.format(parts, {yyyy:1,MM:4,dd:5,hh:6,mm:7,ss:8,SSS:9});
        }
    return this[input];
});

ヘルパーを使用します。

{{#each logs}}
   <tr>
      <td>{{formatDate 'ts' '{yyyy}-{MM}-{dd} {hh}:{mm}:{ss}'}}</td>
于 2013-01-18T12:10:46.297 に答える
1

私はこのライブラリを使用しています。これにより、必要なすべての日付フォーマットが提供されます。meteor を使用すると、それをドロップするだけで、任意のヘルパーで使用してフォーマットされた日付を返すことができます。

http://stevenlevithan.com/assets/misc/date.format.js

于 2012-09-30T14:07:36.773 に答える
0

テンプレートヘルパーJavaScriptDateオブジェクトをご覧ください。

于 2012-09-11T05:05:53.043 に答える