在下划线模板中设置日期格式
Formatting dates in Underscore templates
我在下划线模板中使用的主干模型中有一个date
属性date
值采用整数格式,如12346432。
我想在下划线模板中以dd/mm/yyyy格式显示这个整数值,就像我在PHP中所做的那样。
这是我的下划线模板
<script type="text/template" id="item-template">
<span class="label label-info"><%- name %> <em> <%= date %> </em> </span>
</script>
Undercore模板允许您通过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>
格式化此日期对象可以像这样完成
<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>
还有一个演示http://jsfiddle.net/Dyzm8/
您有两个选项:
在传递toJSON方法的结果时,使用另一个字段扩展对象:
var fields = this.model.toJSON();
fields.formattedDate = '29/11/1973';
this.template(fields);
另一种方法是查看Backbone Marionette,它为此类情况提供了辅助方法(并解决了许多其他重复任务)。
Javascript中的一个简单的PHP日期函数端口可以在这里找到。
相关文章:
- 在输入类型日期中设置日期
- 在达到状态之前在Redux Reducer中设置日期格式
- Javascript设置日期不起作用,显示错误的时间
- 如何在我的情况下设置日期格式
- 时间戳日期&时间格式-应用程序脚本-设置日期和时间格式
- 引导日期选取器在显示时与在值上设置日期的格式不同
- 设置日期变量的格式
- Java 脚本 设置日期的最小值和最大值属性
- Javascript Date - 只设置日期,忽略时间
- 使用angular-moment.js设置日期格式
- Moment会在设置日期时自动更正无效日期
- Moment.js:根据浏览器语言设置日期格式
- 以给定的精度设置日期格式
- 使用即时Angularjs设置日期格式
- 使用DateAdd()在Javascript/Classic ASP中设置日期格式
- 从 UTC 字符串设置日期格式
- 如何设置日期滑块的选定范围的最小值
- 以角度格式设置日期格式
- 以角度设置日期格式
- 在 JavaScript 中设置日期时间顺序