Javascript 突出显示当前日期

Javascript 突出显示当前日期,javascript,css,date,Javascript,Css,Date,我的函数显示当前日期和接下来的60天,但我希望突出显示当前日期。最好的方法是什么 var date = new Date(); var dayInt = date.getDate(); var month = date.getMonth(); var year = date.getFullYear(); var dateRange = document.getElementById('calendar-table-range'); var monthNames = ["Jan", "Feb",

我的函数显示当前日期和接下来的60天,但我希望突出显示当前日期。最好的方法是什么

var date = new Date();
var dayInt = date.getDate();
var month = date.getMonth();
var year = date.getFullYear();

var dateRange = document.getElementById('calendar-table-range');
var monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; 

document.getElementById("month").innerHTML = monthNames[month];
document.getElementById("year").innerHTML = year;


for(var day = 0; day < 60; day++) {
    var date = new Date();
    date.setDate(date.getDate() + day);

    var cell = document.createElement("li");
    var cellText = document.createTextNode(day);

    var date = ('0' + date.getDate()).slice(-2) + ' '
    + monthNames[date.getMonth()] + ' '
    // + date.getFullYear();

    cell.innerHTML = date;
    dateRange.appendChild(cell);
}
var-date=新日期();
var dayInt=date.getDate();
var month=date.getMonth();
var year=date.getFullYear();
var dateRange=document.getElementById('calendar-table-range');
var monthNames=[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”];
document.getElementById(“月”).innerHTML=monthNames[month];
document.getElementById(“年”).innerHTML=年;
对于(var日=0;日<60;日++){
变量日期=新日期();
date.setDate(date.getDate()+天);
var cell=document.createElement(“li”);
var cellText=document.createTextNode(天);
变量日期=('0'+date.getDate()).slice(-2)+'
+monthNames[date.getMonth()]+''
//+date.getFullYear();
cell.innerHTML=日期;
dateRange.appendChild(单元格);
}

由于您总是显示接下来的60天,因此当前日期始终是列表中的第一个日期,因此使用CSS选择器很容易确定目标日期。例如:

#日历表范围li:第一个孩子{
背景颜色:黄色;
}

由于您总是显示接下来的60天,因此当前日期始终是列表中的第一个日期,因此使用CSS选择器很容易确定目标日期。例如:

#日历表范围li:第一个孩子{
背景颜色:黄色;
}

另一种方法是以与范围内日期相同的格式创建时间戳,然后搜索它

例如,以下命令将格式设置为单独的函数,并删除未使用的代码:

函数格式日期(d){
让monthNames=[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”];
return('0'+d.getDate()).slice(-2)+'
+monthNames[d.getMonth()];
}
函数highlightToday(){
let today=formatDate(新日期());
让单元格=document.querySelectorAll(“#日历表范围>li”);

对于(var i=0,iLen=cells.length;i另一种方法是以与范围中的日期相同的格式创建时间戳,然后搜索它

例如,以下命令将格式设置为单独的函数,并删除未使用的代码:

函数格式日期(d){
让monthNames=[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”];
return('0'+d.getDate()).slice(-2)+'
+monthNames[d.getMonth()];
}
函数highlightToday(){
let today=formatDate(新日期());
让单元格=document.querySelectorAll(“#日历表范围>li”);

对于(var i=0,iLen=cells.length;iPerfect.Thank you:)是否有一种使用JavaScript的方法。例如,如果我要填充当前日期之前的几天,如何突出显示当前日期,因为它不会是列表中的第一个子日期?@malm12您可以使用
d1.toDateString()比较用例的日期===d2.toDateString()
,您可以使用
cell.classList.add(“当前日期”)
向匹配的日期元素添加一个类。也就是说,我相信您的日期递增逻辑实际上是将年份重置为1970年,因此与
new date()的比较
将在今年失败。我建议在尝试此操作之前修复此问题。@malm12将日期作为字符串进行比较“有效”但不是最佳值。但是,由于您搜索的值是DD-MMM格式的字符串,因此最好以相同格式为所需日期创建一个字符串,然后搜索单元格的文本内容并与之进行比较。完美。谢谢:)是否有一种使用JavaScript的方法。例如,如果我要填充当前日期之前的几天,如何突出显示当前日期,因为它不会是列表中的第一个子日期?@malm12您可以使用
d1.toDateString()==d2.toDateString()比较用例的日期
,您可以使用
cell.classList.add(“当前日期”)
将类添加到日期元素匹配中。也就是说,我相信您的日期递增逻辑实际上是将年份重置为1970年,因此与
新日期()的比较
将在今年失败。我建议在尝试此操作之前修复此问题。@malm12将日期作为字符串进行比较“有效”但不是最佳值。但是,由于您搜索的值是DD-MMM格式的字符串,因此最好以相同格式为所需日期创建一个字符串,然后搜索单元格的文本内容并与之进行比较。