javascript - 如何在 Datatable 中用两列显示多个结果?
问题描述
在下面的代码中,它将仅返回 Date.How to show this on HTml table with two columns?? 我需要根据结果创建频率列..频率列的每一行都是第一个基本处理..
我想在一个 Html 表中显示两列,如 预期输出
**Date** **Frequency**
19-Jan-2019 1st Basic treatment
05-Feb-2019 2nd Control Treatment
----------
----------
17-Dec-2019 12th Control treatment
Date.prototype.addDays = function(days) {
var date = new Date(this.valueOf());
date.setDate(date.getDate() + days);
return date; }
function formatDate(date) {
var monthNames = [
"Jan", "Feb", "Mar",
"Apr", "May", "June", "July",
"Aug", "Sept", "Oct",
"Nov", "Dec"
];
var day = date.getDate();
var monthIndex = date.getMonth();
var year = date.getFullYear();
return day + '-' + monthNames[monthIndex] + '-' + year;
}
function printNextPeriod(startDate, endDate, periodInDays) {
var numWorkDays = 0;
var currentDate = new Date(startDate);
while (numWorkDays < periodInDays && currentDate <= endDate) {
currentDate = currentDate.addDays(1);
// Skips friday
if (currentDate.getDay() !== 5) {
numWorkDays++;
}
if (numWorkDays == periodInDays) {
numWorkDays = 0;
//console.log(currentDate);
console.log(formatDate(currentDate));
}
} }
var start = new Date("2019-01-01");
var end = new Date("2019-12-31");
var period = 15;
printNextPeriod(start, end, period);
解决方案
更改问题后,解决方案可能是这样
如果您真的想要一个表格,请将 div 更改为表格单元格
您可以使用 document.createElement 和 tbody.appendChild
function nth(d) { if (d > 3 && d < 21) return 'th'; switch (d % 10) { case 1: return "st"; case 2: return "nd"; case 3: return "rd"; default: return "th"; } }
function dateToYMD(date) { var strArray=['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; var d = date.getDate(); var m = strArray[date.getMonth()]; var y = date.getFullYear(); return '' + (d <= 9 ? '0' + d : d) + '-' + m + '-' + y; }
Date.prototype.addDays = function(days) { var date = new Date(this.valueOf()); date.setDate(date.getDate() + days); return date; }
function pad(str) { return (" "+str).slice(-2) }
var cnt = 0, dataSet = [];
function printNextPeriod(startDate, endDate, periodInDays) {
var numWorkDays = 0;
var currentDate = new Date(startDate);
while (numWorkDays < periodInDays && currentDate <= endDate) {
currentDate = currentDate.addDays(1);
// Skips friday
if (currentDate.getDay() !== 5) {
numWorkDays++;
}
if (numWorkDays == periodInDays) {
numWorkDays = 0;
cnt++;
let treatment = pad(cnt) + nth(cnt) + (cnt == 1 ? " Basic" : " Control") + " Treatment"
dataSet.push([dateToYMD(currentDate),treatment]);
}
}
}
var start = new Date("2019-01-01");
var end = new Date("2019-12-31");
var period = 15;
printNextPeriod(start, end, period);
$(document).ready(function() {
$('#example').DataTable({
data: dataSet,
columns: [{ title: "Date" },
{ title: "Frequency" }
],
order: [ [1, "asc"] ],
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://cdn.datatables.net/1.10.19/css/jquery.dataTables.min.css" />
<script src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js"></script>
<table id="example">
</div>
推荐阅读
- machine-learning - Caffemodel 和 prototxt
- microsoft-graph-api - 有没有办法从办公室加载项任务窗格中打开日历项目?
- jquery - 尝试使用 Laravel 和 jquery 访问 null 类型值的数组偏移量
- javascript - 如何在 angularJS 指令中操作变量
- python - 如何理解二叉树中的递归
- instagram-api - 现在可以使用 API 分享 Instagram 了吗?
- svelte - 苗条的动画块过渡
- sql - 找到正确的 SQL 查询
- python - 根据索引列表从不同的 Dataframe 列中选择值
- python - OSError:找不到名为“cairo”的库