如何格式化通过 AJAX 从 ASPX JSON 解析的日期?

Posted

技术标签:

【中文标题】如何格式化通过 AJAX 从 ASPX JSON 解析的日期?【英文标题】:How to format date parsed from ASPX JSON via AJAX? 【发布时间】:2019-07-01 15:18:17 【问题描述】:

实际上,我正在从 mysql 解析一些数据,然后将它们序列化为 JSON。 下一步是我通过 AJAX 检索 JSON 并将数据放入 Chart.JS。

问题是日期值被格式化为

/日期(154564434687)/

这是 JQuery 代码,我在其中将值从解析的 JSON 设置为图表

 function GetMOV() 

        $.ajax(
            type: "post",
            url: "index.aspx/GetMOV",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (r) 

                data = r.d;
                data = jQuery.parseJSON(data)

                new Chart(document.getElementById("linechart"), 
                    type: 'line',
                    data: 
                        labels: data.map(f => f.text),
                        datasets: [
                            
                                label: "Venduto",
                                data: data.map(f => f.value),
                                fill: false,
                                borderColor: 'rgba(75,192,192,1)',
                                lineTension: 0.1,
                                borderWidth: 3,
                                pointBackgroundColor: '#fff',
                                pointBorderWidth: 1,
                                pointHoverRadius: 5,
                                borderCapStyle: 'square',
                                borderJoinStyle: 'square',
                                pointHitRadius: 20,
                                pointStyle: 'circle',
                            
                        ]
                    ,
                    options: 
                        legend:  display: false ,
                        scales: 
                            yAxes: [
                                ticks: 
                                    beginAtZero: true,
                                    min: 0
                                ,
                                time: 
                                    unit: 'year'
                                
                            ]
                        
                    
                );

            ,
            error: function (error) 
                OnFailure(error);
                alert('Error');
            
        );
    

【问题讨论】:

您将日期值设置在图表的哪一行? @SonalBorkar 标签:data.map(f => f.text) 此处 How do I format a Microsoft JSON date?的可能重复 @Rob 我还尝试过类似 new Date(data.map(f=>f.text) 它不起作用,因为它不是字符串 【参考方案1】:

我刚刚尝试了几行代码。你想要这样吗?

var data = [value: 4111.47, text: "/Date(1540159200000)/" ,value: 5122.85, text: "/Date(1540245600000)/" ,value: 3906.24, text: "/Date(1540332000000)/" ,value: 3749.79, text: "/Date(1540418400000)/" , value: 6349.68, text: "/Date(1540504800000)/"];
function TojavascriptDate(value) 
  var pattern = /Date\(([^)]+)\)/;
  var results = pattern.exec(value);
  var dt = new Date(parseFloat(results[1]));
  return (dt.getMonth() + 1) + "/" + dt.getDate() + "/" + dt.getFullYear();

data.map(c=>ToJavaScriptDate(c.text))

【讨论】:

这是一个函数,你能把这个函数移到函数GetMOV()上面吗? 我只是将其设置为错误的变量,谢谢【参考方案2】:

你可以使用这个功能

function ToJavaScriptDate(value) 
  var pattern = /Date\(([^)]+)\)/;
  var results = pattern.exec(value);
  var dt = new Date(parseFloat(results[1]));
  return (dt.getMonth() + 1) + "/" + dt.getDate() + "/" + dt.getFullYear();


ToJavaScriptDate("/Date(154564434687)/")
"11/25/1974"

【讨论】:

你能把你的完整数据放在这里吗? 10: value: 4111.47, text: "/Date(1540159200000)/" 11: value: 5122.85, text: "/Date(1540245600000)/" 12: value: 3906.24 , text: "/Date(1540332000000)/" 13: value: 3749.79, text: "/Date(1540418400000)/" 14: value: 6349.68, text: "/Date(1540504800000)/"跨度> 【参考方案3】:

你也可以使用 momentjs 库。

var yourdate = "/Date(154564434687)/";
moment(Number(yourdate.match(/\d+/)[0])).format('MM/DD/YYYY')
"11/25/1974"

【讨论】:

只是一个问题,我有一个包含大量数据而不是单个字符串的数组

以上是关于如何格式化通过 AJAX 从 ASPX JSON 解析的日期?的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET / JavaScript - Ajax 调用,如何?

怎么获取AJAX前台返回JSON 数据

Django:从 QueryDict 读取 JSON 对象数组

如何构造 HighCharts 数据系列以匹配通过 ajax 调用返回的 Json

如何:正确使用PHP将数据编码成JSON格式,并通过jquery/ajax请求数据

从 jQuery Ajax 发布时 PHP Json 格式错误