成功调用中的日期格式不正确

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),

以上方法可以帮助我解决您的问题。希望这会对你有所帮助。

【讨论】:

以上是关于成功调用中的日期格式不正确的主要内容,如果未能解决你的问题,请参考以下文章

MYSQL 中的日期格式不正确

Oracle DB 中的日期时间格式不正确,转换为小时和分钟

日期时间格式无效:1292 日期时间值不正确 [重复]

日期格式不正确 java

日期格式不正确?

剑道网格导出日期格式不正确