Bootstrap 3日期选择器-minDate和maxDate
Bootstrap 3 datepicker - minDate and maxDate
http://eonasdan.github.io/bootstrap-datetimepicker/
嗨
我正在尝试使用最小-最大日期选项,但不确定如何使用它,因为文档中没有提供示例代码。
我在stackoverflow上发现你可以这样做:
最小日期:moment()
但这引发了一个错误,即时刻尚未定义。
我猜它找不到页面上包含的moment.js,否则插件就无法工作。
我试图实现的是在当天之前禁用10天,并显示当天之后的30天。
感谢
Here is the code (I have removed everything except whats important to simply show the code):
window[ns] = window[ns] || {};
(function ($, moment, app) {
'use strict';
// Private Methods
var nameSpace = 'global',
globalDataObject = null,
notifyRenderCallbacks = function (pageName) {
if ($('.js-calendar').length) {
$('.js-calendar').datetimepicker({
format: 'DD MMMM YYYY',
dayViewHeaderFormat: 'MMMM YYYY',
icons: {
next: 'icon icon-chevronright',
previous: 'icon icon-chevronleft'
},
enabledDates: moment().add(30, 'days')
});
}
},
// If this module requires global data
app.register(nameSpace, initialize);
}(jQuery, moment, window[ns] || {}));
回答我的问题。使用的框架要求您在配置文件中添加moment,否则它将不允许使用http://momentjs.com/或者任何其他JS——与建立框架的人交谈,他们这样做是出于安全原因。
Kasun的答案是正确的,但更好的方法是使用Moment.js,因为datetimepicker使用的是这个js。
因此,要回答第二部分,即禁用当前日期前10天并显示当前日期后30天,您需要设置以下选项。我不需要做之前的10天,但只希望有一定的天数可供选择。我添加了一些注释以使事情变得清楚,但它们不应该在那里。
$mydatepicker.datetimepicker({
minDate: moment(), // Current day
maxDate: moment().add(30, 'days'), // 30 days from the current day
viewMode: 'days',
format: 'DD MMMM YYYY',
dayViewHeaderFormat: 'MMMM YYYY',
});
上述操作将启用minDate和maxDate之间的所有日期。
您也可以直接输入日期范围:
$mydatepicker.datetimepicker({
minDate: moment("12/01/2015"),
maxDate: moment("12/30/2015"),
viewMode: 'days',
format: 'DD MMMM YYYY',
dayViewHeaderFormat: 'MMMM YYYY',
});
这将禁用您在moment()中输入的日期之前和之后的所有日子。
这不是问题的一部分,但我想在加载日历时在输入值中显示当前日期,但它不会,而是显示占位符文本。我认为这是因为使用了if-minDate,所以我只是使用jQuery来替换输入的值。
$datepickerInput.val(moment());
var todayDate = new Date().getDate();
$('#element').datetimepicker({
timepicker:false,
formatDate:'Y/m/d',
minDate: new Date(),
maxDate: new Date(new Date().setDate(todayDate + 30))
});
通过使用这个例子,您可以让用户选择从今天到下一个30天之间的日期,而无需使用momentjs。您可以根据需要提供minDate和maxDate的值。举个例子,如果你想在过去30天到未来30天之间提供选项,那么设置
minDate: new Date(new Date().setDate(todayDate - 30))
maxDate: new Date(new Date().setDate(todayDate + 30))
只需这样做,使用JavaScript日期对象:
minDate: (new Date()).getDate()
禁用
$("#editreservation_to").datetimepicker({minDate:-1,maxDate:-2}).attr('readonly','readonly');
启用
$("#editreservation_to").datetimepicker({minDate:false,maxDate:false}).removeAttr('readonly');
- pickaday maxDate issue
- DateTimePicker:函数从minDate maxDate添加删除日期
- AngularUI日期选择器将变量传递给minDate和maxDate
- Angular JQuery日期选择器未在加载时设置MinDate
- jQuery datetimepicker does not update minDate
- JQuery 日期选择器 - 根据当前时间设置 MinDate
- 从另一个设置引导日期时间选择器的 minDate
- 在给定现有答案的情况下,更改日期选择器中的 minDate 选项不起作用
- jquery Datepicker:minDate中奇怪的文档减法
- minDate 或 maxDate 在 AlloyUI 1.5 DatePickerSelect 中不起作用
- 如何在更改时为引导日期时间选择器设置 minDate 和 maxDate
- Datepicker minDate在为多语言进行重构后停止工作
- 启动日期时间选择器minDate和maxDate无法在单击事件时更新
- Bootstrap 3日期选择器-minDate和maxDate
- jQuery minDate/maxDate,不带年份
- 无法在jquery-simple-datetimepicker中设置minDate或maxDate
- 修改链接datetimepicker minDate maxDate函数
- datetimepicker update mindate maxdate
- UIDatePicker - minDate & maxDate from php Var
- Jquery datepicker in mindate and maxdate