【问题标题】:Datepicker date range日期选择器日期范围
【发布时间】:2013-04-28 16:39:25
【问题描述】:

我使用了 fork https://github.com/eternicode/bootstrap-datepicker,但我遇到了一些问题。

我希望日期选择器首先显示年份,然后在我单击年份后显示月份,然后它应该在单击月份时关闭,例如日期变为“2013-01”。

我在 viewmode 和 minviewmode 上尝试了所有可能的组合,但无法让它以特定的顺序工作。

这是我的 JS:

$('#from_date').datepicker({
    viewMode: "years", 
    minViewMode: "years",
    format: 'yyyy-mm-dd',
    startDate: '2008-01-01',
    endDate: 'y-12-31',
    autoclose: true
});

什么是正确的代码?

是否也可以隐藏不在日期范围内的日期?它显示 2008 年之前和 2013 年之后的年份(即使我无法点击它们)。

另外一个问题是弹出窗口在 div 上打开,而不是在日历按钮上(就像原始脚本一样)。 HTML 看起来像这样:

<div class="input-append date" id="from_date" data-date="102/2012" data-date-format="yyyy-mm" data-date-viewmode="years" data-date-minviewmode="months">
<input name="date_from" id="dpMonths" class="dpMonths input-block-level" type="text" value="2008" /><span class="add-on"><i class="icon-calendar"></i></span>
</div>

【问题讨论】:

  • 再测试一下,如果我用的话效果会更好:startView: "decade", minViewMode: "months",但是还是有点怪。

标签: twitter-bootstrap datepicker


【解决方案1】:

这是我自己的结论:

$('#from_date').datepicker({
    startView: "decade",
    minViewMode: "months",
    format: 'yyyy-mm-dd',
    startDate: '2008-01-01',
    endDate: 'y-12-31',
    autoclose: true
});

$('#to_date').datepicker({
    startView: "decade",
    minViewMode: "months",
    format: 'yyyy-mm-dd',
    startDate: '2008-01-01',
    endDate: 'y-12-31',
    autoclose: true
});

还有一个问题我需要帮助。我需要“to_date”在本月的最后一天结束。因此日期范围变为 2013-01-01 到 2013-01-31,而不是像现在这样的 2013-01-01 到 2013-01-01。

【讨论】:

  • 为什么不直接使用“yyyy-mm”作为格式(忽略月份)?这不是你最初的目标吗?