如何在dust.js模板中格式化数字,货币或日期值?
数据:
{
today: 'Wed Apr 03 2013 10:23:34 GMT+0200 (CEST)'
}
模板:
<p>Today: {today} </p>
就像这样:(用moment.js)
<p>Today: {moment(today).format('dd.MM.YYYY')}</p>
或围绕一些价格值*
数据: {价格:56.23423425}
模板:
价格:{price.toFixed(2)}
答案 0 :(得分:8)
你可能需要写一个帮手。有关如何编写帮助程序的详细信息,请访问:
日期字符串的模板如下所示:
<p>Today: {@formatDate value="{today}"/}</p>
你的助手会是这样的:
dust.helpers.formatDate = function (chunk, context, bodies, params) {
var value = dust.helpers.tap(params.value, chunk, context),
timestamp,
month,
date,
year;
timestamp = new Date(value);
month = timestamp.getMonth() + 1;
date = timestamp.getDate();
year = timestamp.getFullYear();
return chunk.write(date + '.' + month + '.' + year);
};
您可能希望在该片段中添加以在月份或日期之前获得前导零。
答案 1 :(得分:3)
对于需要为nodeJs应用程序执行此操作的人,这是一个很好的KrakenJS示例:
https://github.com/lmarkus/Kraken_Example_Date_Format_Helper
它使用Moment.js来避免在日期格式化时重新发明轮子。
答案 2 :(得分:1)
您可以编写过滤器以使用时刻。像这样...... dust.filters.formatDate =(value)=&gt; moment.utc(value).format('l H:mm'); 脚本中的适当位置。 然后在你的HTML中,只是把|除了你的价值: {日期| formatDate}