我将日期作为字符串从服务器发送,如下所述,其中包含日期和时间部分,如2010-12-07 17:35:04.127。 我想要的只是在数据表栏中显示日期而不是时间部分,即2010-12-07。但我也希望排序发生 在完整的日期,包括时间部分。因此,在2010-12-07 18:35:04.12创建的客户应显示在上方 2010-12-07 17:35:04.12在dataTable列中。这是我在datatable中的特定日期列代码段
"aoColumns": [ { "mDataProp": "customerCreated","bSearchable": false,
"fnRender": function ( o, val )
{
var javascriptDate = new Date(o.aData["customerCreated"]);
javascriptDate = javascriptDate.getFullYear()+"/"+javascriptDate.getMonth()+"/"+javascriptDate.getDate();
return "<div class= date>"+javascriptDate+"<div>";
}
} ]
我面临的问题是: -
1)在IE和Mozilla日期显示为NaN / NaN / NaN。 没问题?
2)在Chrome上显示日期,但显示月份减1。为什么javascriptDate.getMonth()返回月减1?
3)我不确定排序是否有效如果我在上面显示日期部分的路线,但是想要在包括日期部分在内的完整日期进行排序?
FYI 我使用bserverSide作为false。基本上我一次从服务器获取数据并在客户端进行排序?
答案 0 :(得分:1)
JS月份从0开始,日期需要/而不是 -
与Problem with date formats in JavaScript with different browsers
相关试试这个DEMO
function getFormattedDate(dString) {
var d = new Date(dString.split(".")[0].replace(/-/g,"/")); // assuming 2010-12-07 17:35:04.127
var mm = d.getMonth()+1;
var dd = d.getDate();
if (mm<10)mm="0"+mm;
if (dd<10)dd="0"+dd;
return d.getFullYear()+"/"+mm+"/"+dd;
}
"aoColumns": [ { "mDataProp": "customerCreated","bSearchable": false,
"fnRender": function ( o, val ) {
return "<div class= date>"+getFormattedDate(o.aData["customerCreated"])+"<div>";
}
} ]
如果你也需要时间,那就是
function getFormattedDate(dString) {
var d = new Date(dString.split(".")[0].replace(/-/g,"/")); // assuming 2010-12-07 17:35:04.127
var mm = d.getMonth()+1;
var dd = d.getDate();
if (mm<10)mm="0"+mm;
if (dd<10)dd="0"+dd;
var hh = d.getHours();
var min = d.getMinutes();
if (hh<10) hh="0"+hh;
if (min<10) min="0"+min;
return d.getFullYear()+"/"+mm+"/"+dd+" "+hh+":"+min;
}