我想以数组形式在时间间隔内设置水平

I want to set level with in time interval in array form

我正在使用 angular js 和 moment.js。现在我正在为折线图生成级别。所以我需要为 x 轴值设置一些级别。我想在 x 轴上设置小时间隔。现在我静态地使用这些(x'aix)值,但现在我想用 javascript 函数动态设置。

var lineData = { labels: ["0hr", "1hr", "2hr", "3hr", "4hr", "5hr", "6hr"],
                datasets: [                   
                    {
                        label: "My Second dataset",
                        fillColor: "rgba(151,187,205,0.2)",                      
                        pointHighlightFill: "#fff",
                        pointHighlightStroke: "rgba(151,187,205,1)",
                        data: [28, 48, 40, 19, 86, 27, 80]
                    }
                ]
            }; 
 var startFromTime=11;
 var endToTime=15;

我想在标签中设置时间间隔从 11 到 15。

labels: ["0hr", "1hr", "2hr", "3hr", "4hr", "5hr", "6hr"]

我可以设置将这些值以数组形式分配给变量并将该变量分配给标签吗:[1,2,3,4]

你不需要 moment.JS,一个普通的旧 JavaScript 函数就可以完成这项工作。

function getTimeLabels(start) {
var timeStart = start;
var limit = 7;

var resultArr = [];
var counter = 0;

for (var x = 0; x < (timeStart + limit); x++) {

    if (x > 24) {
        resultArr.push(counter + "hr");
    }
    resultArr.push(x + "hr");
}

return resultArr;
}

在这里你传递你希望开始的数字,它会生成你的标签,它还会考虑 x 超过 24 并使用不同的计数器来完成之后发生的操作。

您的代码已修改:

var lineData = { labels: getTimeLabels(0),
                datasets: [                   
                    {
                        label: "My Second dataset",
                        fillColor: "rgba(151,187,205,0.2)",                      
                        pointHighlightFill: "#fff",
                        pointHighlightStroke: "rgba(151,187,205,1)",
                        data: [28, 48, 40, 19, 86, 27, 80]
                    }
                ]
            }; 
 var startFromTime=11;
 var endToTime=15;