【问题标题】:Set min/max Date of jquery Datepicker设置 jquery Datepicker 的最小/最大日期
【发布时间】:2016-09-23 11:52:56
【问题描述】:

我无法理解如何设置 jquery Datepicker 的最小/最大日期。当我检查docs 时,我看到dateformat 应该在new Date(2009, 1 - 1, 26) 中。 1-1 是什么意思?当我检查 w3c 学校的 js 日期格式时,我找不到这个。

所以我尝试了

$("#datepicker").datepicker({
    changeMonth: true,
    changeYear: true,
    dateFormat: 'yyyy-mm',
    minDate: new Date(2001-01),
    maxDate: '+15Y'
});

但这给我留下了完全随机的结果......它从 2006 年开始,到 2026 年结束。

这是小提琴 http://jsfiddle.net/ANF2y/58/

【问题讨论】:

  • 在 JavaScript 中 Date 对象 month 计算为 0 到 11。要设置月份,请使用 current month - 1
  • @Pugazh 好的。但是为什么 startdate 实现为 1-1?!
  • @Stophface 是月份而不是日期。 new Date(year, month, date)
  • 1 - 1 等同于0。所以这是一个有效的月份0 - January
  • @Pugazh 所以从 2001 年 1 月 1 日开始,我想我会输入 new Date(2001, 00, 01)dateFormat: 'yyyy, mm, dd'?这让我得到相同的结果。它从 2006 年开始,到 2026 年结束。

标签: javascript jquery jquery-ui datepicker


【解决方案1】:

在 JavaScript 中,month 是从 0 到 11 计算的。因此,在创建新日期时,请使用 当前月份 - 1

1 - 1 等同于0。所以这是一个有效的月份 (0 - January)。

在您的情况下,设置minDate 如下。

$("#datepicker").datepicker({
  changeMonth: true,
  changeYear: true,
  minDate: new Date(2001, 0, 1),
  maxDate: '+15Y',
  dateFormat: 'yyyy-mm'
});

那是因为 jquery 日期选择器一次只显示 15 个项目,没有设置最大日期,因此您可以在未来尽可能远地进行。当它设置为 2001 时,您会在下拉列表中看到 2006,因为它被限制为 15 个项目。选择 2006,然后您会在下拉列表中看到 2001。您的问题是我可以在年份下拉列表中显示更多项目吗?

【讨论】:

  • 这个:jsfiddle.net/ANF2y/60 在您的计算机上从 2001 年开始?在这里,它从 2006 年开始,到 2026 年结束......
  • 这是 jQuery Datepicker 的一个错误。但是您可以使用箭头选择前几个月:-(
  • 我会向开发者/jQuery 论坛报告这个错误!!
  • 哦,伙计:(我在这里吓坏了......我认为这与我使用的日期格式有关。谢谢!我会尝试 bootstrap-datepicker。
  • 我认为没有必要提交错误报告:stackoverflow.com/questions/13865218/…
【解决方案2】:

我不打算讨论 minDate 或 maxDate,因为这已经很好地涵盖了。但除此之外,您要查找的是 yearRange 将设置 jquery 日期选择器的年份下拉列表中可见项目的数量。

文档说明:

年份下拉菜单中显示的年份范围:相对于今天的年份(“-nn:+nn”),相对于当前选定的年份(“c-nn:c+nn”),绝对( “nnnn:nnnn”)或这些格式的组合(“nnnn:-nn”)。请注意,此选项仅影响下拉菜单中显示的内容。

Reference

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多