javascript - DataTable 未格式化日期时间
问题描述
我有一个数据表id = 'att_tm_req'
。它在格式的第一列中包含日期
2018-09-06 16:04:00 UTC
我想以DD/MM/YYY
英文月份名称而不是数字MM
表示的格式显示它。
当我将以下内容js
应用于我的表时:
document.addEventListener('turbolinks:load', function() {
$('#att_tm_req').DataTable( {
columnDefs: [ {
targets: 0,
render: $.fn.dataTable.render.moment( 'Do DD MMM YYYYY' )
} ]
} );
});
数据表显示:
Invalid date
在曾经是完美数据的每一行上。我已经将moment.js
文件添加到我的application.js
. 接受任何和所有建议。
解决方案
问题是moment.js 无法定义您的源日期时间格式。
您的日期时间格式为:
YYYY-MM-DD HH:mm:ss UTC
然后您需要使用DataRender Datetime 插件和moment.js的两 (2) 个参数,即:
$.fn.dataTable.render.moment(从,到);
你的代码应该像这样替换:
columnDefs: [{
targets: 1,
render: $.fn.dataTable.render.moment('YYYY-MM-DD HH:mm:ss UTC','Do DD MMM YYYYY')
}]
示例演示:
$(document).ready(function(){
$('#example').DataTable({
columnDefs: [{
targets: 1,
render: $.fn.dataTable.render.moment('YYYY-MM-DD HH:mm:ss UTC','Do DD MMM YYYYY')
}]
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.8.4/moment.min.js"></script>
<script src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js"></script>
<script src="//cdn.datatables.net/plug-ins/1.10.19/dataRender/datetime.js"></script>
<link href="https://cdn.datatables.net/1.10.19/css/jquery.dataTables.min.css" rel="stylesheet" />
<table id="example" class="display nowrap" width="100%">
<thead>
<tr>
<th>Date Before</th>
<th>Date After</th>
</tr>
</thead>
<tbody>
<tr>
<td>2018-09-06 16:04:00 UTC</td>
<td>2018-09-06 16:04:00 UTC</td>
</tr>
</tbody>
</table>
推荐阅读
- json - 为什么 actix-web 服务发送文本/纯文本而不是 JSON 以获取身份验证错误?
- anychart - 鼠标悬停在图表上发出的 event.point.index 有什么意义?
- asp.net-core - 刷新页面时连接握手失败和 500 错误 - 使用 Angular 和 .Net Core 的 Abp 为零
- sql - 保存日期的记录中字符串“- 4/24”的用途是什么?
- reactjs - 类型错误消息 - 当作为道具传递给点击事件时,函数不被识别为函数(这里是新手)
- angular - 如何通过 HTTPS 提供内容
- javascript - 如何修复“语法错误:意外的令牌:”
- javascript - 我对 Firestore 的 Cloud 函数的 onCreate 函数有疑问
- google-chrome - Vuex 在 Chrome 中的奇怪行为
- java - 为什么我们在这段代码中使用 new 来调用方法?