javascript - 如何在 jQuery Datable(服务器端)中格式化日期时间列
问题描述
我正在实现 jQuery 服务器端数据表。我有 1 个日期列和 2 个日期时间列。所有 3 个都以错误的格式显示在数据表上。
收到日期:/日期(1373947200000)/(日期)
创建日期:/Date(1374845903000)/(日期时间)
更新日期:/Date(1374845903000)/(日期时间)
如何以正确的格式显示?
.cshtml
<table id="disparityForm" class="ui celled table" style="width:100%">
<thead>
<tr>
<th>Status</th>
<th>Received Date</th>
<th>Member ID</th>
<th>First Name</th>
<th>Last Name</th>
<th>Created User</th>
<th>Created Date</th>
<th>Updated User</th>
<th>Updated Date</th>
</tr>
</thead>
<tfoot>
<tr>
<th>Status</th>
<th>Received Date</th>
<th>Member ID</th>
<th>First Name</th>
<th>Last Name</th>
<th>Created User</th>
<th>Created Date</th>
<th>Updated User</th>
<th>Updated Date</th>
</tr>
</tfoot>
</table>
<link href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.3.0/semantic.min.css" rel="stylesheet" />
<link href="~/Content/DataTables/media/css/dataTables.semanticui.min.css" rel="stylesheet" />
@section scripts{
<script src="~/Scripts/DataTables/media/js/jquery.dataTables.min.js"></script>
<script src="~/Scripts/DataTables/media/js/dataTables.semanticui.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.3.0/semantic.min.js"></script>
<script>
$(document).ready(function () {
$("#disparityForm").DataTable({
"ajax": {
"url": "/DisprtyForm/GetList",
"type": "POST",
"datatype": "json"
},
"columns": [
{ "data": "STS", "name": "STS" },
{ "data": "RECEIVED_DATE", "name": "RECEIVED_DATE" },
{ "data": "MBR_AGP_ID_NUM", "name": "MBR_AGP_ID_NUM" },
{ "data": "MBR_FST_NME", "name": "MBR_FST_NME" },
{ "data": "MBR_LST_NME", "name": "MBR_LST_NME" },
{ "data": "CREATE_USR_ID", "name": "CREATE_USR_ID" },
{ "data": "AUDIT_CREATE_DT", "name": "AUDIT_CREATE_DT" },
{ "data": "UPDT_USR_ID", "name": "UPDT_USR_ID" },
{ "data": "AUDIT_UPDT_DT", "name": "AUDIT_UPDT_DT" },
],
"serverSide": "true",
"order": [0, "asc"],
"processing": "true",
"language": {
"processing": "processing...Please wait"
}
});
})
</script>
}
下面是返回 json 格式的 c# 代码。
[HttpPost]
public ActionResult GetList()
{
//Server side Parameters
int start = Convert.ToInt32(Request["start"]);
int length = Convert.ToInt32(Request["length"]);
string searchValue = Request["search[value]"];
string sortColumnName = Request["columns[" + Request["order[0][column]"] + "][Name]"];
string sortDirection = Request["order[0][dir]"];
List<DISPRTY_FORM> disprtyFormList = new List<DISPRTY_FORM>();
using (DBModel db = new DBModel())
{
disprtyFormList = db.DISPRTY_FORM.ToList<DISPRTY_FORM>();
int totalrows = disprtyFormList.Count;
//Todo filtering
int totalRowsAfterFiltering = disprtyFormList.Count;
//sorting
disprtyFormList = disprtyFormList.OrderBy(sortColumnName + " " + sortDirection).ToList<DISPRTY_FORM>();
//paging
disprtyFormList = disprtyFormList.Skip(start).Take(length).ToList<DISPRTY_FORM>();
var jsonResult = Json(new { data = disprtyFormList, draw = Request["draw"], recordsTotal = totalrows, recordsFiltered = totalRowsAfterFiltering }, JsonRequestBehavior.AllowGet);
jsonResult.MaxJsonLength = int.MaxValue;
return jsonResult;
}
}
解决方案
您可以使用第三方库“moment.js”。确保您已添加 moment.js 库
{ data: "AUDIT_CREATE_DT" ,
"render": function (value) {
if (value === null) return "";
return moment(value).format('DD/MM/YYYY');
}
我希望这个解决方案能奏效。 更新: 这里是Moment.js的官方链接
推荐阅读
- python - 在 mac 中安装 conda 后的 .*shrc 和 .*profile 文件
- excel - 打开 Excel 密码恢复
- node.js - 如何使用“非原子”批处理/管道在 Scylla 中运行多个查询
- kivy - Kivy WebView 错误:无法添加到窗口,它已经有一个父级
- julia - 朱莉娅情节中的注释
- sql-server - 选择逻辑读取或执行时间较短的 SQL Server 查询
- php - 注意:尝试访问 null 类型值的数组偏移量
- html - 大屏幕响应式显示
- java - Github OAuth 设备流程未返回正确的范围
- python - 当脚本是始终运行的脚本时,如何配置 github 操作?