我在这里看过类似的查询,并没有完全回答我的问题,也没有以我能理解的方式回答我的问题。来自MySQL的kendo-ui网格日期格式sql查询
我从代表日期时间的MySQL数据库中检索字符串值,即数据库中的“2013年10月3日05:30:45 PM”被表示为“20131003173045”。该值在Kendo Grid的“上次登录”列中显示为日期。这些都包含在使用MVC框架的面向PHP的网页中。
此前我在SQL查询中应用了一个日期格式,将字符串从“20131003173045”更改为“2013年10月03日05:30:45 PM”,但这会在KendoGrid中呈现为字符串,即11月日期可以出现在10月日期之前,4月日期首先出现等。这可理解不是所需的功能,尤其是当试图按此列排序时。
示例代码的页面渲染KendoGrid:
<div class="div1">
<div>
<table id="listGrid"></table>
</div>
</div>
<script>
$(function() {
$("#grid").kendoGrid({
scrollable: false,
groupable: false,
sortable: {
mode: "multiple"
},
resizable: true,
pageable: true,
dataSource:
{
transport:
{
read: {
url: "<?= $site_url ?>Settings/Users/List",
dataType: "json"
},
parameterMap: function (model, operation) {
if (operation == "read") {
return model;
}
else if(model) {
return { "json" : kendo.stringify(model) };
}
else
return "";
}
},
pageSize: 20,
serverPaging: true,
serverSorting: true,
sort: { field: "LastLogin", dir: "desc" },
serverGrouping: true,
serverAggregates: false,
schema: {
total: "total",
data: "data",
groups: "groups"
}
},
toolbar: [ { title: "", template:'<a class="k-button k-button-icontext k-grid-add" href="<?= $site_url ?>Settings/Users/Add/">Add New User</a>' }],
columns: [
//{field: "Id", width: "40px"},
{field: "UserName", title: "Alias", width: "160px"},
{field: "ForeName", title: "Forename", width: "100px"},
{field: "SurName", title: "Surname", width: "160px"},
{field: "Initials", width: "80px"},
{field: "CrmId", title: "CRM ID", width: "100px"},
{field: "Dept", title: "Department", width: "100px"},
{field: "Position"},
// Below is the field in question
{field: "LastLogin", title: "Last Login", width: "160px"},
{field: "BlockedStatus", title: "Status", width: "90px"},
{ title: "", template:'<a class="k-button k-button-icontext k-grid-edit" href="<?= $site_url ?>Settings/Users/Update/#: Id #">Edit</a>' }
]
});
});
</script>
我已经看过了kendo.parseDate和kendo.toString,以及两者结合,但似乎无法得到任何工作;我要么获得“null”或“20131003173045”,要么页面无法加载。
我无法更改数据库数据,我只能将其格式化为SQL查询的一部分,这正是我最初所做的工作。
我需要整个“20131003173045”字符串变成“03 Oct,2013 05:30:45 PM”,并且仍然按照适当的时间顺序排序 - 我该怎么做,如果是kendo.parseDate和kendo。 toString是正确的工具,我做错了什么?
谢谢你的回答;我无法让它为我工作 - 这是关于解析函数,因为我不明白(d)指的是什么? 我将不得不接受答案并解决问题,因为我被迫从这个问题继续前进;我的上级在网站的MVC框架的一个单独部分中完成了一个解决方法来管理SQL查询。我相信你之前的帖子和答案是有效的,但我无法让它在我的特定情况下工作。道歉,如果这不是处理这种情况的正确方法,但这是我的第一个问题。 –
'd'是从服务器收到的数据,服务器发送的数据。然后,在那个结构中,我使用jQuery'each'迭代'data'数组的元素。对于每个元素,我使用你提到的格式解析接收日期,其中'yyyy'代表4位数的年份,'MM'代表日期为两位数,'dd'代表月份的日期,'HH'代表小时以24h格式和'mm'和'ss'分钟和秒钟。 – OnaBai