成功调用中的日期格式不正确
Posted
技术标签:
【中文标题】成功调用中的日期格式不正确【英文标题】:Date not coming in proper format in success call 【发布时间】:2018-08-06 18:42:58 【问题描述】:我想在成功调用时将数据填充到gridview
中,我为此编写了代码。但作为回应,我得到的日期值为/Date(1518114600000)/
,这似乎有些不同。
为了让它正确,我根据我的要求更改了格式。如下所示
var createdDate = new Date(result.CREATED_DATE);
var createdDateRCOM = createdDate.getDate() + '/' + (createdDate.getMonth() + 1) + '/' + createdDate.getFullYear();
但它仍然像 /Date(1518114600000)/
下面是我写的代码
function getDataForGrid(evt)
var ddlMZone = $('#ddlMaintenanceZone').val();
$.ajax(
type: "POST",
url: "Dashboard.aspx/GetGridZoneData",
data: JSON.stringify( ddlMZone: ddlMZone ),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data)
var datVal = JSON.parse(data.d);
var details = [];
for (var i = 0, len = datVal.length; i < len; i++)
var result = datVal[i];
if (result.APPROVED_FLG == 0)
result.APPROVED_FLG = "No";
var buttonColumn = "<b><a href='DashboardData.aspx?id=" + result.RJ_SAPID + "' target='_blank'>Update Info</a></b>";
details.push([result.RJ_SAPID, result.RJ_FACILITY_ID, result.SITE_NAME, result.LATITUDE, result.LONGITUDE, result.CREATED_DATE, result.STATUS, result.APPROVED_FLG, buttonColumn]);
$('#grdMZInfo').DataTable(
destroy: true,
"aaData": details,
"aoColumns": [
"sTitle": "RJ SapId" ,
"sTitle": "Facility Id" ,
"sTitle": "Site Name" ,
"sTitle": "Latitude" ,
"sTitle": "Longitude" ,
"sTitle": "Created date" ,
"sTitle": "Status" ,
"sTitle": "Approved flag" ,
"sTitle": "Update Data"
],
"bDestroy": true
);
,
error: function (data)
alert('Something went wrong..!!');
);
请指出这里有什么问题
更新
[WebMethod]
public static string GetGridZoneData(string ddlMZone)
DataTable dt = new DataTable();
try
CommonDB ObjCommon = new CommonDB();
dt = ObjCommon.GetGridZoneDataForMZ(ddlMZone);
return DataTableToJSON(dt);
catch (Exception)
throw;
public static string DataTableToJSON(DataTable table)
javascriptSerializer jsSerializer = new JavaScriptSerializer();
List<Dictionary<string, object>> parentRow = new List<Dictionary<string, object>>();
Dictionary<string, object> childRow;
foreach (DataRow row in table.Rows)
childRow = new Dictionary<string, object>();
foreach (DataColumn col in table.Columns)
childRow.Add(col.ColumnName, row[col]);
parentRow.Add(childRow);
return jsSerializer.Serialize(parentRow);
【问题讨论】:
可以发下服务器代码吗? How to handle json DateTime returned from WCF Data Services (OData)的可能重复 你指的是 createdDateRCOM 对象吗?这也是 createdDate 吗? /Date(1518114600000)/ 是 JSON 日期格式。如果您想从 createdDate 对象获取日期,您可以使用 eval(createdDate .replace(/\/Date((\d+))\//gi, "new Date($1)"));正则表达式来做到这一点。 @G_S": 是的,我想在dd/mm/yy
中格式化日期我应该如何进行
【参考方案1】:
对于任何与日期相关的计算,我个人更喜欢moment js
,因为它有很多不错的功能,我们可以轻松管理日期。
它就像引用moment js
文件并使用它一样简单。
在你的情况下,我们可以说moment('/Date(1224043200000)/').format('DD/MM/YY')
【讨论】:
我试过这样,moment(result.CREATED_DATE).format('DD/mm/YYYY')
,但得到的日期不同,例如09/00/2018
【参考方案2】:
在服务器代码中,我将DateTime
对象格式化为string
,如下所示,
YourObject obj = new YourObject
startDate = dta[i].startD.ToString("MM/dd/yyyy");
在我的 Jquery 中,
var startDate = new Date(YourObject.startDate),
以上方法可以帮助我解决您的问题。希望这会对你有所帮助。
【讨论】:
以上是关于成功调用中的日期格式不正确的主要内容,如果未能解决你的问题,请参考以下文章