如何格式化数据表中显示的日期
Posted
技术标签:
【中文标题】如何格式化数据表中显示的日期【英文标题】:How to format date displayed in Datatable 【发布时间】:2017-05-21 18:00:33 【问题描述】:我有一个使用数据表在我的数组中显示对象的函数。将日期和时间格式从 ISODate 更改为人类可读格式有点问题。
我的数据
var datas = “rows” : [_id: "2017-01-03T00:00:00.000Z", Humidity: 24, Temperature: 18,
_id: "2017-01-04T00:00:00.000Z", Humidity: 23.071428571428573, Temperature: 18.928571428571427 ]
JS 脚本
var table = $('#myTable').DataTable(
data: datas.rows,
"columns": [
data: "_id" ,
data: "Temperature" ,
data: "Humidity"
]
);
感谢您的预期帮助。
【问题讨论】:
在您的情况下,人类可读的确切含义是什么? datatables.net/reference/option/columns.render 更改值的显示方式,momentjs.com 将有助于以您想要的格式获取日期。 @kraskevich YYYY:MM:DD HH:MM 这就是我的意思。 @PaulAbbott 感谢您的链接。我有 3 列,但我只想渲染一列。渲染函数是紧跟在特定列之后还是我将它添加到data: "Humidity"
的末尾??
@PaulAbbott 你能给我举个例子来说明我如何构建这个吗?该链接没有给我我想要的东西。
【参考方案1】:
正如上面@Paul Abbott 所指出的,momentjs 和渲染函数应该可以看到你的正确:
var datas =
"rows": [
_id: "2017-01-03T00:00:00.000Z",
Humidity: 24,
Temperature: 18
,
_id: "2017-01-04T00:00:00.000Z",
Humidity: 23.071428571428573,
Temperature: 18.928571428571427
]
var table = $('#myTable').DataTable(
data: datas.rows,
"columns": [
data: "_id",
render: function(data, type, row)
if(type === "sort" || type === "type")
return data;
return moment(data).format("MM-DD-YYYY HH:mm");
,
data: "Temperature"
,
data: "Humidity"
]
);
【讨论】:
感谢您的回复。我收到一个错误TypeError: undefined is not an object (evaluating '$.fn.dataTable.render')
。虽然我在 html 文件中包含了 datetime cdn。
显然我的脚本不正确,但我仍然收到错误moment is not a function
看不到你的脚本,我不知道发生了什么。这是一个工作示例:jsfiddle.net/annoyingmouse/hpgafeys。您需要按此顺序包括 jQuery、DataTables 和 MomentJS。
@Sandor,我的立场是正确的 - 这是否满足您的需求:jsfiddle.net/annoyingmouse/cgqqLaw1
@annoyingmouse: 过失, if(type === "sort" || type === "type") 成功了,但是请注意是答案中的错误,因为 function(d) 定义而不是 function (data, type, row)以上是关于如何格式化数据表中显示的日期的主要内容,如果未能解决你的问题,请参考以下文章
如何在 MySQL 数据库中显示日期和价格,并在 PHP 中以各种格式显示