Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在chartjs中格式化x轴标签的日期字符串?_Php_Jquery_Chart.js - Fatal编程技术网

Php 如何在chartjs中格式化x轴标签的日期字符串?

Php 如何在chartjs中格式化x轴标签的日期字符串?,php,jquery,chart.js,Php,Jquery,Chart.js,我最近在chart.js的时间刻度图上工作。但现在我想在数据中添加标签,比如2017年2月1日、2017年6月2日,而不是“2017年2月4日”、“2017年2月9日”等等 这里是我的代码 var aR = null; //store already returned tick var ctx = document.getElementById('myChart').getContext('2d'); var chart = new Chart(ctx, { type: 'line',

我最近在
chart.js
的时间刻度图上工作。但现在我想在
数据中添加标签,比如2017年2月1日、2017年6月2日,而不是“2017年2月4日”、“2017年2月9日”等等

这里是我的代码

var aR = null;  //store already returned tick
var ctx = document.getElementById('myChart').getContext('2d');
var chart = new Chart(ctx, {
   type: 'line',
   data: {
           /* labels: ["01-01-2017", "03-01-2017", "04-02-2017", "09-02-2017", "03-03-2017", "17-03-2017","23-03-2017","09-04-2017"],*/

      labels: ["1 January 2017", "3 January 2017","12 January 2017","20 January 2017","22 January 2017","23 January 2017","27 January 2017", "4 February 2017", "9 February 2017", "3 March 2017", "17 March 2017","23 March 2017","15 March 2017"],
      datasets: [{
         label: "My First dataset",
         backgroundColor: 'rgba(255, 99, 132, 0.5)',
         borderColor: 'rgb(255, 99, 132)',
         data: [12, 16, 2, 7, 15, 5, 11, 10, 11, 1, 8, 9, 15],
         lineTension: 0
      }]
   },
   options: {
      scales: {
         xAxes: [{
            ticks: {
               autoSkip: false,
               callback: function(e) {
                  var tick = e.match(/(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sept|Oct|Nov|Dec).*?\d+/g)[0];
                  if (tick != aR) {
                     aR = tick;
                     return tick;
                  }
               }
            }
         }],
         yAxes: [{
            ticks: {
               min: 0,
               max: 30
            }
         }]
      }
   }
});

那我怎么才能给他们重新贴标签呢。请引导我。谢谢

我假设,您希望将x轴标签显示为
2017年1月1日
而不是
2017年1月1日

如果是这样的话,你需要重新格式化你的日期字符串,你可以用下面的方法来完成

var日期_arr=[“2017年1月1日”、“2017年1月3日”、“2017年2月4日”、“2017年2月9日”、“2017年3月3日”、“2017年3月17日”、“2017年3月23日”、“2017年4月9日”];
var标签=格式日期(日期);
函数格式化日期(arr){
var new_date=[];
arr.forEach(功能(d){
var date=d.split('-')[0]。替换(/\d+/,函数(e){
开关(e){
案例“01”:案例“21”:案例“31”:
返回e+‘st’;
案例'02':案例'22':
返回e+‘nd’;
案例'03':案例'23':
返回e+‘rd’;
违约:
返回e+‘th’;
}
});
var月=新日期(d.分割('-')[1])toLocaleString('en-us'){
月份:“长”
});
风险年=d.分割('-')[2];
新日期推送(日期+月份+年份);
});
返回新的_日期;
}
/***生成图表****/
var-aR=null//商店已经退回了滴答声
var ctx=document.getElementById('myChart').getContext('2d');
var图表=新图表(ctx{
键入:“行”,
数据:{
标签:标签,
数据集:[{
标签:“我的第一个数据集”,
背景颜色:“rgba(255,99,132,0.5)”,
边框颜色:“rgb(255,99,132)”,
数据:[12,16,10,11,9,15,13,16],
线张力:0
}]
},
选项:{
比例:{
xAxes:[{
滴答声:{
autoSkip:错误,
回调:函数(e){
var tick=e.match(/(一月|二月|三月|四月|五月|六月|七月|八月|九月|十月|十一月|十二月)*?\d+/g)[0];
如果(勾选!=aR){
aR=滴答声;
返回勾号;
}
}
}
}],
雅克斯:[{
滴答声:{
分:0,,
最多:30
}
}]
}
}
});

我假设,您希望将x轴标签显示为
2017年1月1日
而不是
2017年1月1日

如果是这样的话,你需要重新格式化你的日期字符串,你可以用下面的方法来完成

var日期_arr=[“2017年1月1日”、“2017年1月3日”、“2017年2月4日”、“2017年2月9日”、“2017年3月3日”、“2017年3月17日”、“2017年3月23日”、“2017年4月9日”];
var标签=格式日期(日期);
函数格式化日期(arr){
var new_date=[];
arr.forEach(功能(d){
var date=d.split('-')[0]。替换(/\d+/,函数(e){
开关(e){
案例“01”:案例“21”:案例“31”:
返回e+‘st’;
案例'02':案例'22':
返回e+‘nd’;
案例'03':案例'23':
返回e+‘rd’;
违约:
返回e+‘th’;
}
});
var月=新日期(d.分割('-')[1])toLocaleString('en-us'){
月份:“长”
});
风险年=d.分割('-')[2];
新日期推送(日期+月份+年份);
});
返回新的_日期;
}
/***生成图表****/
var-aR=null//商店已经退回了滴答声
var ctx=document.getElementById('myChart').getContext('2d');
var图表=新图表(ctx{
键入:“行”,
数据:{
标签:标签,
数据集:[{
标签:“我的第一个数据集”,
背景颜色:“rgba(255,99,132,0.5)”,
边框颜色:“rgb(255,99,132)”,
数据:[12,16,10,11,9,15,13,16],
线张力:0
}]
},
选项:{
比例:{
xAxes:[{
滴答声:{
autoSkip:错误,
回调:函数(e){
var tick=e.match(/(一月|二月|三月|四月|五月|六月|七月|八月|九月|十月|十一月|十二月)*?\d+/g)[0];
如果(勾选!=aR){
aR=滴答声;
返回勾号;
}
}
}
}],
雅克斯:[{
滴答声:{
分:0,,
最多:30
}
}]
}
}
});


你想像
01-02-2017,02-06-2017那样显示吗?为什么标签是硬编码的?Make标签是动态的,并且是这种格式的“标签:[“01-01-2017”,“03-01-2017”,“04-02-2017”,“09-02-2017”,“03-2017”,“17-03-2017”,“23-03-2017”,“09-04-2017”]”你想像
01-02-2017那样显示,2017年6月2日
这是为什么标签是硬编码的?Make标签是动态的,采用这种格式的标签:[“01-01-2017”、“03-01-2017”、“04-02-2017”、“09-02-2017”、“03-03-2017”、“17-03-2017”、“23-03-2017”、“09-04-2017”]。。!你让我开心。谢谢:)是的。。!你让我开心。谢谢:)