我使用下面的代码来格式化Highcharts中的日期,
Highcharts.dateFormats = {
W: function (timestamp) {
var date = new Date(timestamp),
day = date.getUTCDay() == 0 ? 7 : date.getUTCDay(),
dayNumber;
date.setDate(date.getUTCDate() + 4 - day);
dayNumber = Math.ceil((date.getTime() - new Date(date.getUTCFullYear(), 1, 1, 0)) / 86400000);
//console.log(dayNumber);
console.log(Math.floor(dayNumber / 7));
return Math.floor(dayNumber / 7);
}
}
但周订单如下 - 0,4,8,12,17,21,26,30,34,39,43,47
日期格式应该如下 - “0,4,8,12,16,20,24,28,32,36,40,44,48,52”
我的代码出了什么问题,并且知道为什么在12
后5
增加MainActivity
并将其设置为“17”?
提前感谢!!
答案 0 :(得分:0)
您获得的周数似乎符合ISO定义。 请查看此信息以便进一步阅读https://en.wikipedia.org/wiki/ISO_week_date
创建了一个样本http://jsfiddle.net/pmajhwar/bzv5k6L8/,有助于专家输入和更快的解决方案。希望这会有所帮助。
<script src="http://code.highcharts.com/stock/highstock.js"></script>
<div id="container" style="height: 400px"></div>
$(function() {
Highcharts.dateFormats = {
W: function(timestamp) {
var date = new Date(timestamp),
day = date.getUTCDay() == 0 ? 7 : date.getUTCDay(),
dayNumber;
date.setDate(date.getUTCDate() + 4 - day);
dayNumber = Math.ceil((date.getTime() - new Date(date.getUTCFullYear(), 1, 1, 0)) / 86400000);
console.log("UTC " + moment('2016-01-01').utc() + " " + Date.UTC(2016, 1, 1))
var week = moment(date, 'lll').utc().isoWeek();
// var week = moment(date, 'llll').utc().week();
console.log("date: " + moment(date).utc().format('llll') + " wk " + Math.floor(dayNumber / 7) + " moment wk-> " + week);
//return Math.floor(dayNumber / 7) ;
return week;
}
}
var chart = new Highcharts.StockChart({
chart: {
renderTo: 'container'
},
title: {
text: 'Custom date format'
},
xAxis: {
type: 'datetime',
tickInterval: 7 * 24 * 36e5, // one week
labels: {
format: '{value:Week %W/%Y}',
align: 'right',
rotation: -30
}
},
series: [{
data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4, 29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4, 29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4, 29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 129.2, 144.0, 176.0],
pointInterval: 7 * 24 * 36e5,
pointStart: Date.UTC(2016, 0, 1)
}]
});
});