我对如何在Chart.js中更改日期格式感到困惑。我从MySQL数据库抓取数据--我的一列叫做"StartD“
{"RECORD_NO":217,“费用”:4971,"StartD":"5/8/2022"},{"RECORD_NO":216,“成本”:1814,"StartD":"4/8/2022"},{"RECORD_NO":215,“成本”:3335,"StartD":"3/8/2022"},{"RECORD_NO":214,“成本”:1886,"StartD":"2/8/2022"}{"RECORD_NO":213,“费用”:1274,"StartD":"1/8/2022"},{"RECORD_NO":212,“成本”:2238,"StartD":"31/7/2022"},{"RECORD_NO":211,“成本”:1819年,"StartD":"30/7/2022"},{"RECORD_NO":210,“成本”:1021,"StartD":"29/7/2022"},}{"RECORD_NO":209,“费用”:2564,"StartD":"28/7/2022"},{"RECORD_NO":208,“成本”:4534,"StartD":"27/7/2022"},{"RECORD_NO":207,“成本”:4187,"StartD":"26/7/2022"},{"RECORD_NO":206,“成本”:2337,"StartD":"25/7/2022"}{"RECORD_NO":205,“费用”:4778,"StartD":"24/7/2022"},{"RECORD_NO":204,“成本”:3215,"StartD":"23/7/2022"},{"RECORD_NO":203,“成本”:4469,"StartD":"22/7/2022"},{"RECORD_NO":202,“成本”:1883年,"StartD":"21/7/2022"}{"RECORD_NO":201,“费用”:1097,"StartD":"20/7/2022"},{"RECORD_NO":200,“成本”:2918,"StartD":"19/7/2022"},{"RECORD_NO":199,“成本”:4956,"StartD":"18/7/2022"},{"RECORD_NO":198,“成本”:1565,"StartD":"17/7/2022"}{"RECORD_NO":197,“费用”:4425,"StartD":"16/7/2022"},{"RECORD_NO":196,“成本”:2277,"StartD":"15/7/2022"},{"RECORD_NO":195,“成本”:3866,"StartD":"14/7/2022"},{"RECORD_NO":194,“成本”:1546,"StartD":"13/7/2022"}{"RECORD_NO":193,“费用”:563,"StartD":"12/7/2022"},{"RECORD_NO":192,“成本”:576,"StartD":"11/7/2022"},{"RECORD_NO":191,“成本”:731,"StartD":"10/7/2022"},{"RECORD_NO":190,“成本”:2850,"StartD":"9/7/2022"}{"RECORD_NO":189,“成本”:1154,"StartD":"8/7/2022"},{"RECORD_NO":188,“成本”:4447,"StartD":"7/7/2022"},{"RECORD_NO":187,“成本”:3476,"StartD":"6/7/2022"},{"RECORD_NO":186,“成本”:1047,"StartD":"5/7/2022"}{"RECORD_NO":185,“费用”:1049,"StartD":"4/7/2022"},{"RECORD_NO":184,“成本”:1566,"StartD":"3/7/2022"},{"RECORD_NO":183,“成本”:700,"StartD":"2/7/2022"},{"RECORD_NO":182,“成本”:4728,"StartD":"1/7/2022"}{"RECORD_NO":181,“费用”:4549,"StartD":"30/6/2022"},{"RECORD_NO":180,“成本”:1155,"StartD":"29/6/2022"},{"RECORD_NO":179,“成本”:2148,"StartD":"28/6/2022"},{"RECORD_NO":178,“费用”:4934,"StartD":"27/6/2022"}{"RECORD_NO":177,“费用”:4353,"StartD":"26/6/2022"},{"RECORD_NO":176,“成本”:2546,"StartD":"25/6/2022"},{"RECORD_NO":175,“成本”:1239,"StartD":"24/6/2022"},{"RECORD_NO":174,“成本”:1724,"StartD":"23/6/2022"}{"RECORD_NO":173,“费用”:769,"StartD":"22/6/2022"},{"RECORD_NO":172,“成本”:670,"StartD":"21/6/2022"},{"RECORD_NO":171,“成本”:4634,"StartD":"20/6/2022"},{"RECORD_NO":170,“成本”:2742,"StartD":"19/6/2022"}{"RECORD_NO":169,“成本”:4797,"StartD":"18/6/2022"},{"RECORD_NO":168,“成本”:3317,"StartD":"17/6/2022"}
我把它放进我的BarChar.js文件中,它识别了数据。
import React, {
useState,
useEffect
} from 'react'
import {
Chart as ChartJS,
CategoryScale,
LinearScale,
BarElement,
Title,
Tooltip,
Legend,
} from 'chart.js'
import {
Bar
} from "react-chartjs-2"
// Radar, Doughnut, Polar, Pie
import axios from 'axios';
ChartJS.register(
CategoryScale, LinearScale, BarElement, Title, Tooltip, Legend
);
function BarChart() {
const [chartData, setChartData] = useState({
datasets: [],
});
const Chart = () => {
let Cost = [];
let No = [];
axios.get("http://localhost:3001/api/TranscationRecord/Cost")
.then(res => {
console.log(res);
for (const dataObj of res.data) {
Cost.push(parseInt(dataObj.Cost));
No.push(parseInt(dataObj.StartD));
}
setChartData({
labels: No,
datasets: [{
label: 'Daily Cost',
data: Cost,
backgroundColor: [
'rgba(255, 99, 132, 0.2)',
'rgba(54, 162, 235, 0.2)',
'rgba(255, 206, 86, 0.2)',
'rgba(75, 192, 192, 0.2)',
'rgba(153, 102, 255, 0.2)',
'rgba(255, 159, 64, 0.2)',
'rgba(255, 99, 132, 0.2)',
'rgba(54, 162, 235, 0.2)',
'rgba(255, 206, 86, 0.2)',
'rgba(75, 192, 192, 0.2)',
'rgba(153, 102, 255, 0.2)',
'rgba(255, 159, 64, 0.2)',
'rgba(255, 99, 132, 0.2)',
'rgba(54, 162, 235, 0.2)',
'rgba(255, 206, 86, 0.2)',
'rgba(75, 192, 192, 0.2)',
'rgba(153, 102, 255, 0.2)',
'rgba(255, 159, 64, 0.2)',
'rgba(255, 99, 132, 0.2)',
'rgba(54, 162, 235, 0.2)',
'rgba(255, 206, 86, 0.2)',
'rgba(75, 192, 192, 0.2)',
'rgba(153, 102, 255, 0.2)',
'rgba(255, 159, 64, 0.2)',
],
borderColor: [
'rgba(255, 99, 132, 1)',
'rgba(54, 162, 235, 1)',
'rgba(255, 206, 86, 1)',
'rgba(75, 192, 192, 1)',
'rgba(153, 102, 255, 1)',
'rgba(255, 159, 64, 1)',
'rgba(255, 99, 132, 1)',
'rgba(54, 162, 235, 1)',
'rgba(255, 206, 86, 1)',
'rgba(75, 192, 192, 1)',
'rgba(153, 102, 255, 1)',
'rgba(255, 159, 64, 1)',
'rgba(255, 99, 132, 1)',
'rgba(54, 162, 235, 1)',
'rgba(255, 206, 86, 1)',
'rgba(75, 192, 192, 1)',
'rgba(153, 102, 255, 1)',
'rgba(255, 159, 64, 1)',
'rgba(255, 99, 132, 1)',
'rgba(54, 162, 235, 1)',
'rgba(255, 206, 86, 1)',
'rgba(75, 192, 192, 1)',
'rgba(153, 102, 255, 1)',
'rgba(255, 159, 64, 1)',
],
borderWidth: 1,
options: {
scales: {
x: {
type: 'time',
time: {
unit: 'date',
parser: 'dd/mm/yyyy'
}
},
y: {
beginAtZero: true
}
}
}
}]
});
})
.catch(err => {
console.log(err);
})
}
useEffect(() => {
Chart();
}, []);
return ( <
div className = "App" >
<
h1 > Bar Chart < /h1> <
div >
<
Bar data = {
chartData
}
/> < /
div > <
/div>
)
}
export default BarChart;
结果

它只能呈现日而不能呈现"DD/MM“的格式,这是解决问题的一种方法吗?
发布于 2022-06-27 04:43:17
试试displayFormats
const chart = new Chart(ctx, {
type: 'line',
data: data,
options: {
scales: {
x: {
type: 'time',
time: {
displayFormats: {
quarter: 'MMM YYYY'
}
}
}
}
}
});发布于 2022-06-27 04:48:13
您的条形图的x轴当前是范畴轴而不是时间轴.原因是options被错误地放置,它不应该在dataset中定义,而应该遵循Chart.js配置的顶层结构。
使用react-chartjs-2,您可以将options定义为一个单独的对象,并按如下方式提供:
<Bar data={data} options={options} /> 一旦纠正了这一点,就可以根据Chart.js文档这里定义显示格式。
也请考虑,时间尺度要求两者,日期库和相应的适配器。在场。
发布于 2022-06-27 05:19:47
如下图所示更改for循环
for (const dataObj of res.data) {
Cost.push(parseInt(dataObj.Cost));
const date = new Date(dataObj.StartD);
No.push(date->toLocaleDateString('en-us',{month:"2-digit", day:"2-digit"));
}https://stackoverflow.com/questions/72766961
复制相似问题