Javascript 将数字时间戳值转换为'MMM YYYY'格式
我想知道如何将时间戳中的数据转换为“MMM YYYY”格式,以便显示图表的x轴 这是我的LineChart.vueJavascript 将数字时间戳值转换为'MMM YYYY'格式,javascript,vue.js,Javascript,Vue.js,我想知道如何将时间戳中的数据转换为“MMM YYYY”格式,以便显示图表的x轴 这是我的LineChart.vue <script> import { Line } from 'vue-chartjs' export default { extends: Line, data () { return { datacollection: { labels: [
<script>
import { Line } from 'vue-chartjs'
export default {
extends: Line,
data () {
return {
datacollection: {
labels: [ <-- Timestamps
1600934100.0,
1602009600.0,
1602747060.0,
1603050158.390939,
1603305573.992575
],
datasets: [
{
label: 'Data One',
backgroundColor: '#f87979',
pointBackgroundColor: 'white',
borderWidth: 1,
pointBorderColor: '#249EBF',
data: [
9.0,
9.5,
2.5,
11.52,
12.4
]
}
]
},
options: {
lineTension: 0,
maintainAspectRatio: false,
legend: {
display: false
},
scales: {
yAxes: [
{
scaleLabel: {
display: false
},
ticks: {
beginAtZero: true,
// eslint-disable-next-line no-unused-vars
callback (value, index, values) {
return `${value }%`
}
}
}
],
xAxes: [
{
gridLines: {
display: false
}
}
]
}
}
}
},
mounted () {
this.renderChart(this.datacollection, this.options)
}
}
</script>
请帮我解决这个问题,因为我无法独自面对它,我已经面对这个问题两周了
谦虚的请求,如果有人知道答案,请修改我自己的代码并将其发送回,因为我对Vuejs是新手,因此包装确切的组件或任何逻辑都会成为一个问题。您可以将数值转换为
Date
,并将其转换为格式正确的()字符串:
const src=[1600941001602000960016027470601603050158.3909391603305573.992575],
日期=src.map(n=>
新日期(n*1e3)
Tolocalesting先生(
“恩,我们”,
{月:'短',年:'数字'}
))
console.log(日期)
。作为控制台包装{min height:100%;}
您有两种解决问题的方法。您可以将来自api的数组更改为所需的格式,或者在前端绘制api数组的映射并格式化每个日期
在我的示例中,我将使用:
这将创建一个新的数组,如下所示
[ "Sep 2020", "Oct 2020", "Oct 2020", "Oct 2020", "Oct 2020" ]
从时间戳创建日期和将其格式化为任何格式都很简单,并且用大量现有答案解决了问题。你需要把你的问题分解成各个部分;Vue或ChartsJ在这里是不相关的。从API加载数据也是如此;即使ChartJS不支持API数据,您也可以简单地加载数据,然后将其传递给ChartJS。
const result = [
1600934100.0,
1602009600.0,
1602747060.0,
1603050158.390939,
1603305573.992575
].map(date => DateTime.fromMillis(date * 1000).toFormat("MMM yyyy"));
[ "Sep 2020", "Oct 2020", "Oct 2020", "Oct 2020", "Oct 2020" ]