Bootstrap datepicker仅显示日期

是否可以仅在Bootstrap datepicker中显示日期 ?

我只使用以下方法显示数月和数年 –

$("#year").datepicker({ format: " yyyy", viewMode: "years", minViewMode: "years" }); $("#month").datepicker({ format: " mm", viewMode: "months", minViewMode: "months", maxViewMode: 0 }); 

一个现场演示 ,仅显示年份月份字段中的年份月份选择。 我想在日期字段中仅显示1到31之间没有月份,年份在顶部以及没有日期名称的日期

是的,有可能,但有点复杂,你必须:

  • format选项设置为d (或dd
  • maxViewMode选项设置为0minViewMode默认为0
  • 隐藏上一个/下个月按钮和月份名称按钮,您可以使用CSS执行此操作:
    • .datepicker-daysdays视图位于具有.datepicker-days类的表中
    • prev和next按钮位于.datepicker-days表中,它们具有.prev.next
    • 月份名称在同一个表中,它具有.datepicker-switch
  • 日期datepicker应该显示正确的天数,因此您必须在选择年份和月份时以dinamically更新defaultViewDate (请参阅changeDate事件)
    • 由于picker没有defaultViewDate setter方法,你可以destroy它然后重新初始化它。

这是一个完整的工作样本:

 $(document).ready(function() { var dateOpt = { format: 'dd', maxViewMode: 0 }; $("#year").datepicker({ format: "yyyy", viewMode: "years", minViewMode: "years" }).on('changeDate', function(e) { var month = $('#month').datepicker('getDate'); if( !month ){ month = new Date(); } dateOpt.defaultViewDate = { year: e.date.getFullYear(), month: month.getMonth(), day: 1 }; // Reset date datepicker $('#date').datepicker('destroy'); // Re-init with defaultViewDate option $('#date').datepicker(dateOpt); }); $("#month").datepicker({ format: "mm", viewMode: "months", minViewMode: "months", maxViewMode: 0 }).on('changeDate', function(e) { var year = $('#year').datepicker('getDate'); if( !year ){ year = new Date(); } dateOpt.defaultViewDate = { year: year.getFullYear(), month: e.date.getMonth(), day: 1 }; $('#date').datepicker('destroy'); $('#date').datepicker(dateOpt); }); $("#date").datepicker(dateOpt) }); 
 /* Hide prev/next buttons and month name*/ .datepicker-days>table>thead>tr>th.prev, .datepicker-days>table>thead>tr>th.datepicker-switch, .datepicker-days>table>thead>tr>th.next { display: none; } /* Hide days of previous month */ td.old.day{ visibility: hidden; } /* Hide days of next month */ td.new.day{ display: none; }