在下划线模板中格式化日期

San*_*ghs 1 javascript php date backbone.js underscore.js

我date在下划线模板中使用的Backbone模型中有一个属性.
该date值的格式为整数,如123456432.

我想在下划线模板中以dd/mm/yyyy格式显示此整数值,就像我在PHP中一样.

这是我的下划线模板

<script type="text/template" id="item-template">    
    <span class="label label-info"><%- name %> <em> <%= date %> </em>  </span>
</script>
Run Code Online (Sandbox Code Playgroud)

nik*_*shr 11

下划线模板允许您以任何您认为合适的方式调用函数和输出文本print.例如,要将时间戳转换为日期,您可以使用类似的东西

<script type="text/template" id="tpl-1">    
    <span class="label label-info"><% print(new Date(date*1000)) %></span>
</script>
Run Code Online (Sandbox Code Playgroud)

请注意,我假设时间戳来自PHP,因此只需几秒钟.在Javascript中,时间戳预计以毫秒为单位,这就是我将它乘以1000的原因.

如果您的时间戳来自Javascript,请使用

<script type="text/template" id="tpl-1">    
    <span class="label label-info"><% print(new Date(date)) %></span>
</script>
Run Code Online (Sandbox Code Playgroud)

格式化此日期对象可以像这样完成

<script type="text/template" id="tpl-2">    
    <span class="label label-info"><% 
        var d = new Date(date*1000), // or d = new Date(date)
            fragments = [
                d.getDate(),
                d.getMonth() + 1,
                d.getFullYear()
            ]; 
            print(fragments.join('/'));
        %></span>
</script>
Run Code Online (Sandbox Code Playgroud)

或者将所有这些因素分解为一个函数调用(这里_.template可以将它存储在任何地方)

_.template.formatdate = function (stamp) {
    var d = new Date(stamp*1000), // or d = new Date(date)
        fragments = [
            d.getDate(),
            d.getMonth() + 1,
            d.getFullYear()
        ]; 
    return fragments.join('/');
};
Run Code Online (Sandbox Code Playgroud)
<script type="text/template" id="tpl-3">    
    <span class="label label-info"><%= _.template.formatdate(date) %></span>
</script>
Run Code Online (Sandbox Code Playgroud)

和演示http://jsfiddle.net/Dyzm8/