【问题标题】:Format Numbers and Dates in dust.js (linkedin-fork)在dust.js(linkedin-fork)中格式化数字和日期
【发布时间】:2013-03-24 19:43:19
【问题描述】:

如何在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)}

【问题讨论】:

    标签: javascript dust.js client-side-templating


    【解决方案1】:

    您可以编写一个过滤器来使用时刻。像这样说: dust.filters.formatDate = (value) => moment.utc(value).format('l H:mm'); 在你的脚本中合适的地方。 然后在您的 html 中,只需输入 |除了你的价值: {日期|格式日期}

    【讨论】:

      【解决方案2】:

      对于需要为 nodeJs 应用程序执行此操作的人,这是一个不错的 KrakenJS 示例:

      https://github.com/lmarkus/Kraken_Example_Date_Format_Helper

      它使用 Moment.js 来避免重新发明日期格式。

      【讨论】:

        【解决方案3】:

        您可能需要编写一个助手。可以在此处找到有关如何编写帮助程序的详细信息:

        您的日期字符串模板如下所示:

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

        您可能希望在月份或日期前面添加前导零。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2023-03-22
          • 2012-10-24
          • 1970-01-01
          • 2010-12-13
          • 1970-01-01
          • 2019-06-23
          • 2018-05-24
          相关资源
          最近更新 更多