【发布时间】:2013-05-10 12:32:26
【问题描述】:
我正在尝试绘制有 3 行的表格。 第一行应该有月份名称,第二个 - 月份的天数和一周的第三天。 像这样的东西:
我设法做了一些看起来像这样的事情,但仅限于 2013 年。我想获得特定时间段的自定义表格。 因此,如果我指定我想要从 2013-01-15 到 2013-02-10 的表格,那么它将在第二行和第三行有 27 列,在第一行有 2 列(具有正确的行跨度)。
这就是我现在拥有的:http://jsfiddle.net/Misiu/amEug/
这是我当年的表格生成代码:
var monthNames = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
var monthDays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
var dayNames = ["Mo", "Tu", "We", "Th", "Fr", "Sa", "Sn"];
var months = '';
for (var i = 0; i < monthNames.length; i++) {
months += '<td colspan="' + monthDays[i] + '">' + monthNames[i] + '</td>';
}
$('tr#months').html(months);
var numbers = '';
var counter = 1;
var month = 0;
for (i = 0; i < 365; i++) {
numbers += '<td>' + counter + '</td>';
counter++;
if (counter > monthDays[month]) {
month++;
counter = 1;
}
}
$('tr#numbers').html(numbers);
var days = '';
var day = 0;
for (i = 0; i < 365; i++) {
days += '<td' + (dayNames[day] == 'Sa' || dayNames[day] == 'Sn' ? ' class="weekend"' : '') + '>' + dayNames[day] + '</td>';
day++;
if (day > 6) day = 0;
}
$('tr#days').html(days);
我还希望它尽可能快,因为如果由于某种原因我需要较长的时间(4 年),我希望它能够快速渲染(即使在 IE8 上)。
任何有关如何使其工作的建议都会有所帮助。我查看了 jQuery UI 日期选择器代码,但它很复杂并且具有我不需要的所有功能。
【问题讨论】:
-
在这里看看我的帖子。通过使用 Date 对象并扩展它的功能,它可能会帮助您更轻松地做到这一点。 stackoverflow.com/a/16406643/2356007
-
@jasonmmiraglia - 这和我想的一样 :) 我开始在 jsfiddle 中添加类似的东西
标签: javascript jquery performance