我在下划线模板中使用的Backbone模型中有date
属性。
date
值为整数格式,如 123456432 。
我想在下划线模板中以 dd / mm / yyyy 格式显示此整数值,就像我在PHP中一样。
这是我的下划线模板
<script type="text/template" id="item-template">
<span class="label label-info"><%- name %> <em> <%= date %> </em> </span>
</script>
答案 0 :(得分:11)
下划线模板可让您通过print
以任何您认为合适的方式调用函数和输出文本。例如,要将时间戳转换为日期,您可以使用类似
<script type="text/template" id="tpl-1">
<span class="label label-info"><% print(new Date(date*1000)) %></span>
</script>
请注意,我假设时间戳来自PHP,因此只需几秒钟。在Javascript中,时间戳预计以毫秒为单位,这就是我将它乘以1000的原因。
如果您的时间戳来自Javascript,请使用
<script type="text/template" id="tpl-1">
<span class="label label-info"><% print(new Date(date)) %></span>
</script>
Formatting this date object可以像这样完成
<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>
或将所有这些因素分解为函数调用(此处_.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('/');
};
<script type="text/template" id="tpl-3">
<span class="label label-info"><%= _.template.formatdate(date) %></span>
</script>
答案 1 :(得分:0)
您有两个选择:
传递toJSON方法的结果时,使用另一个字段扩展该对象:
var fields = this.model.toJSON();
fields.formattedDate = '29/11/1973';
this.template(fields);
另一种方法是查看Backbone Marionette,其中helper methods针对此类情况(并解决了许多其他重复性任务)。
可以在Javascript中找到一个简单的PHP日期函数端口here。