我正在使用bootstrap datepicker。我需要突出显示一些随机日期。
例如:
我需要强调日期,如1,3,8,20,21,16,26,30。你能告诉我如何在bootstrap datepicker中突出显示那些随机日期吗?
答案 0 :(得分:4)
正如amphetamachine所提出的Highlight certain dates on bootstrap-datepicker提供了解决此问题所需的大部分内容。该问题的答案可以适用于以下
$('.inline_date').datepicker({
multidate: true,
todayHighlight: true,
minDate: 0,
beforeShowDay: function(date) {
var hilightedDays = [1,3,8,20,21,16,26,30];
if (~hilightedDays.indexOf(date.getDate())) {
return {classes: 'highlight', tooltip: 'Title'};
}
}
});
以上内容将突出显示样式类应用于每个月的列出日期,进一步检查可将其限制为特定月份。一些旧浏览器可能不支持indexOf,在这种情况下,您可以使用JS库或展开if。
答案 1 :(得分:3)
除了“user_busy_days”数组中的日期之外,这是我突出显示的所有日子。
Bootstrap日期选择器有beforeShowDay prop,它会在每个月的每一天执行[最多42次],所以我只检查正在渲染的日期是否在我的数组中,如果它存在于数组中我突出显示它有灰色,我只是用绿色突出显示它。
我希望它能解决问题。
var today = new Date();
var today_formatted = today.getFullYear()+'-'+(today.getMonth()+1)+'-'+('0'+today.getDate()).slice(-2);
var user_busy_days = ['2017-12-09','2017-12-16','2017-12-19'];
$('#datetimepicker12').datepicker({
inline: true,
sideBySide: true,
beforeShowDay: function (date) {
calender_date = date.getFullYear()+'-'+(date.getMonth()+1)+'-'+('0'+date.getDate()).slice(-2);
var search_index = $.inArray(calender_date, user_busy_days);
if (search_index > -1) {
return {classes: 'non-highlighted-cal-dates', tooltip: 'User available on this day.'};
}else{
return {classes: 'highlighted-cal-dates', tooltip: 'User not available on this day.'};
}
}
});
答案 2 :(得分:1)
我找到了解决方案。
$('.inline_date').datepicker({
multidate: true,
todayHighlight: true,
minDate: 0,
});
$('.inline_date').datepicker('setDates', [new Date(2015, 7, 5), new Date(2015, 7, 8), new Date(2015, 7, 7)])
只有一个问题,点击时会删除突出显示。而且需要少一个月。如果你想要8月的日期,那么你必须使用7而不是8。
答案 3 :(得分:0)
基于@Hassan Raza的答案,我做了这个jsfiddle:https://jsfiddle.net/ToniBCN/mzke8tuv/
将日历设置为2019年2月,以橙色显示某些日子,以绿色显示其他日子,而其余部分则被禁用,具体取决于json数据。
// In order to call bootstrap's datepicker instead of jquery object
// https://github.com/uxsolutions/bootstrap-datepicker
var datepicker = $.fn.datepicker.noConflict(); // return $.fn.datepicker to previously assigned value
$.fn.bootstrapDP = datepicker; // give $().bootstrapDP the bootstrap-datepicker functionality
$.fn.bootstrapDP.defaults.format = "dd/mm/yyyy";
$.fn.bootstrapDP.defaults.startDate = '01/01/2019'
$.fn.bootstrapDP.defaults.beforeShowDay = function(date) {
// in order to get current day from calendar in the same format than json
calendar_dates = date.getFullYear() + ('0' + (date.getMonth() + 1)).slice(-2) + ('0' + date.getDate()).slice(-2);
let optionByDate = [{
"date": "20190126",
"option": "A"
},
{
"date": "20190128",
"option": "B"
}, {
"date": "20190131",
"option": "A"
}, {
"date": "20190202",
"option": "B"
}, {
"date": "20190205",
"option": "A"
}, {
"date": "20190207",
"option": "B"
}, {
"date": "20190210",
"option": "A"
}, {
"date": "20190212",
"option": "B"
}, {
"date": "20190215",
"option": "A"
}, {
"date": "20190217",
"option": "B"
}, {
"date": "20190220",
"option": "A"
}, {
"date": "20190222",
"option": "B"
}, {
"date": "20190225",
"option": "A"
}, {
"date": "20190227",
"option": "B"
}, {
"date": "20190302",
"option": "A"
}, {
"date": "20190304",
"option": "B"
}
];
// Get data from optionByDate json
function getDataByCalendar(date) {
return optionByDate.filter(
function(optionByDate) {
return optionByDate.date == date
}
);
}
let search_index = getDataByCalendar(calendar_dates);
if (search_index.length > 0) {
if (search_index[0].option == "A") return {
classes: 'highlighted-a',
tooltip: 'A option'
};
if (search_index[0].option == "B") return {
classes: 'highlighted-b',
tooltip: 'B option'
};
} else {
// Disabled day
return {
enabled: false,
tooltip: 'No option'
};
}
};
答案 4 :(得分:0)
博客文章here解释了如何使用Bootstrap Datetimepicker实现。
基本上使用事件 show ,更新和更改需要突出显示日期。
$('#datetimepicker').on('dp.show', function(e){
highlight()
})
$('#datetimepicker').on('dp.update', function(e){
highlight()
})
$('#datetimepicker').on('dp.change', function(e){
highlight()
})
function highlight(){
var dateToHilight = ["04/19/2019","04/20/2019","04/30/2019"];
var array = $("#datetimepicker").find(".day").toArray();
for(var i=0;i -1) {
array[i].style.color="#090";
array[i].style.fontWeight = "bold";
}
}
}
有关更多信息,请参见博客
参考:
https://sourcecodezoneseven.blogspot.com/2019/04/here-is-code-function-hilight-var.html