我正在制定一个实时时间表。我有一个历史,在那里您可以观看过去的日子。要在此历史记录中选择一天,我添加了一个日历,可以在其中单击日期并获取这一天的值。
问题:
现在我想添加假期。我在数组中用ajax加载假期,当我创建日历时,我想检查所有天是否是假期。但是,如果我将days数组中的31.12.2019与holidays-array中的31.12.2019进行比较,该函数将返回false并且我不知道为什么。
可以比较它们的百分百安全,因为我在日志31.12.2019 / 31.12.2019中找到了
此处提供代码:
function getHolidays(str){
var requestURL = "http://adopraesenz.ipwin.ch/data/holiday.txt";
var request = new XMLHttpRequest();
request.onreadystatechange = function() {
if(this.readyState === 4 && this.status === 200){
if(request.responseText != ""){
loadHolidays(request);
}
}
};
request.open("GET", requestURL, true);
request.send();
}
function loadHolidays(request){
var days = [];
var lines = request.responseText.split('\n');
for(var line = 0; line < lines.length; line++){
var day = ""+lines[line];
days.push(day);
}
holidays = days;
}
//This function gets called everytime i added a day to the calender
function isHoliday(day){
if(day.length == 9){
day = "0" + day;
}
for(var x = 0; x < holidays.length; x++){
if(day == holidays[x]){
return true;
}else{
console.log(day +"/" +holidays[x]);
}
}
}
getHolidays();
此处提供创建日历的功能
function createCalender(monthId,year){
document.getElementById('leftMonth').style = "visibility:visible";
document.getElementById('rightMonth').style = "visibility:visible";
var calender = document.getElementById('calender');
var oldBody = document.getElementsByTagName('tbody')[1];
var body = document.createElement('tbody');
var month = document.getElementById('month');
var days = createDays(monthId);
month.innerHTML = months[monthId] +" "+year;
var rowDays = document.createElement('tr');
for ( var i = 0; i < weekDays.length ; i++ ){
var cell = addDay(rowDays, weekDays[i],monthId);
}
body.appendChild(rowDays);
var row = addWeek();
for (var j = 0; j < days.length; j++){
var day = getCurrentDay(days[j], monthId,year);
for ( var t = 0; t < weekDays.length; t++){
if(day != weekDays[t] && j == 0){
addDay(row, "",monthId,year);
}else if(day == weekDays[t]){
addDay(row, ""+(days[j]),monthId,year);
break;
}
}
if(day == "So"){
body.appendChild(row);
row = addWeek();
}else if(j == days.length-1){
body.appendChild(row);
}
}
replaceBodys(body, oldBody);
document.getElementById('calenderIcon').style = "visibility:hidden; position:fixed";
document.getElementById('calenderDiv').style = "border:1px solid grey; background-color:#D3D3D3; margin-top:0.5%;";
}
这里有添加一天的功能:
function addDay(tr, val,monthId,year){
var cell = document.createElement('td');
cell.innerHTML = val;
if(getCurrentDay(val,monthId,year) == 'So' || getCurrentDay(val,monthId,year) == 'Sa' || isHoliday((val)+"."+(monthId+1)+"."+year)){
cell.style.color = 'red';
}
cell.addEventListener('click', function(event){
var selected = document.getElementsByClassName('selected');
for (var i = 0; i < selected.length; i++){
selected[i].classList.remove('selected');
}
cell.classList.add('selected');
var currentMonth = document.getElementById('month').innerHTML;
var day = cell.innerHTML;
var date;
if(day.length < 2){
date = "0"+day + "." + (months.indexOf(currentMonth.split(" ")[0])+1) +"." +currentMonth.split(" ")[1];
}else{
date = day + "." + (months.indexOf(currentMonth.split(" ")[0])+1) +"." +currentMonth.split(" ")[1];
}
getData("get"+date);
});
tr.appendChild(cell);
return cell;
}
这是holiday.txt
2019年12月24日
25.12.2019
31.12.2019
2020年1月1日
02.01.2020
2020年3月2日
2020年4月10日
2020年4月12日
13.04.2020
2020年5月1日
2020年5月21日
2020年5月31日
2020年6月1日
01.08.2020
2020年12月24日
2020年12月25日
2020年12月31日
答案 0 :(得分:0)
依次使用.split('\r\n')
。
这将起作用:)