实际上,我是从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');
}
});
}
答案 0 :(得分:1)
您可以使用此功能
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"
答案 1 :(得分:1)
您还可以使用momentjs库。
var yourdate = "/Date(154564434687)/";
moment(Number(yourdate.match(/\d+/)[0])).format('MM/DD/YYYY')
"11/25/1974"
答案 2 :(得分: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))