簡體   English   中英

jQuery datetimepicker異常日,帶有minDate和maxDate

[英]JQuery datetimepicker exception day with minDate and maxDate

我遇到了datetimepicker問題。

我有一個帶有訂單的頁面,該頁面有一個交貨日期。

每當列出訂單時,datetimepicker都會具有某個值(例如,上周的某天。)我希望能夠對其進行編輯,但只能選擇一組可用的日期(從今天到30天,包括“最后一天”)周”)。 我應該如何進行?

選擇器的功能:

var maxdate = new Date();
maxdate.setDate(maxdate.getDate() + 30);
var $p = jQuery.noConflict();
$p("#foo").datetimepicker({
      format: 'YYYY/MM/DD',
      useCurrent:true,
      showClose:true,
      defaultDate: $.now(),
      minDate: moment().millisecond(0).second(0).minute(0).hour(0),
      maxDate:maxdate,
 });

編輯:

我猜我對我的問題不是很明確。

我想要的例子:

minDate = 2017/10/14

maxDate = 2017/10/30

(此時一切正常)

我要選擇的日期選項= 2017/09/10(比minDate大1個月)而不更改minDate!

我想創建一個不在最小/最大日期范圍內的例外日期。

對於顯示的選項,我想您正在使用eonasdan-datetimepicker

所以像這樣繼續:

var maxDate = moment().add(30, 'day');
var $p = jQuery.noConflict();
$p("#foo").datetimepicker({
      format: 'YYYY/MM/DD',
      useCurrent: true,
      showClose: true,
      defaultDate: $p.now(),
      minDate: moment().startOf('day'),
      maxDate: maxDate,
 });

如果使用minDate矩方法.add()maxDate添加了30天,則使用startOf('day')會更容易,就像您擁有的一樣,但更易於閱讀。

編輯

好的,所以您要允許用戶選擇不在數組中的“特殊日期”,因此可以使用enabledDates選項。

您將在其中添加特殊日期和啟用的日期范圍,因此只有這樣才能被選擇,並且將是這樣的:

let currentFormat = 'YYYY/MM/DD';
let specialDay = '2017/09/10';
let maxDate = moment().add(30, 'day'); //To the picker not allow to go further in the view
let startDate = moment().startOf('day').format(currentFormat); //First date being added, current day
let enabledDates = [
  moment(specialDay, currentFormat), //this is our "special day"
  moment(startDate, currentFormat) // we format the date to the format needed    ];

//Iterate and add 30 days, and only those will be able to be picked
for (var i = 1; i <= 30; i++) {
  //apply the format
  let date = moment().add(i, 'day').format(currentFormat);
  enabledDates.push(moment(date, currentFormat));
}

//We init our picker with the 30 days and our special date
//`minDate` and `maxDate` still there to give the style to the view 
$("#myDatepicker").datetimepicker({
  format: currentFormat,
  useCurrent: false,
  showClose: true,
  minDate: moment(specialDay, currentFormat),
  maxDate: maxDate,
  enabledDates: enabledDates,
});

工作小提琴https://jsfiddle.net/William_/2ze7bo27/

編輯:更容易更改格式和特殊日期

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM