0

나는 나에게 아주 단순한 무엇인가 찾고 있는데, 여기와 부트 스트랩 datetimepicker 문서에서도 찾지 못했다.부트 스트랩 데이터 피커의 함수로 maxDate 또는 minDate를 설정하는 방법이 있습니까?

아이디어는 매우 간단합니다. 현재 서버에서 검색 한 page_load 값을 가질 두 datetime 필드가 있습니다.

이제 첫 번째 날짜의 maxDate가 두 번째 날짜 값이고 두 번째 날짜의 minDate가 첫 번째 필드의 날짜인지 확인하고자합니다.

여기 내 코드입니다 :

$(document).ready(function() { 
$('[id^="datetimepickerStartDate"]').datetimepicker({ 
    useCurrent: false, 
    format: applicationDateTimeFormat, 
    ignoreReadonly: true, 
    //maxDate: function() { 
    // var id = $(this).attr('id'); 
    // var str = id.split("_"); 
    // if (str.length <= 1) { 
    //  var secondDateTimePicker1 = $('#datetimepickerFinishDate').data("DateTimePicker").date(); 
    //  if (secondDateTimePicker1.length) { 
    //   return secondDateTimePicker1; 
    //  } 
    //  return null; 
    // } else { 
    //  var secondDateTimePicker2 = $("#datetimepickerFinishDate_" + str[1]).data("DateTimePicker").date(); 
    //  if (secondDateTimePicker2.length) { 
    //   return secondDateTimePicker2; 
    //  } 
    //  return null; 
    // } 
    //}, 
    locale: locale 
}); 
$('[id^="datetimepickerFinishDate"]').datetimepicker({ 
    useCurrent: false, 
    format: applicationDateTimeFormat, 
    ignoreReadonly: true, 
    //minDate: function() { 
    // var id = $(this).attr('id'); 
    // var str = id.split("_"); 
    // if (str.length <= 1) { 
    //  var secondDateTimePicker1 = $('#datetimepickerStartDate').data("DateTimePicker").date(); 
    //  if (secondDateTimePicker1.length) { 
    //   return secondDateTimePicker1; 
    //  } 
    //  return null; 
    // } else { 
    //  var secondDateTimePicker2 = $("#datetimepickerStartDate_" + str[1]).data("DateTimePicker").date(); 
    //  if (secondDateTimePicker2.length) { 
    //   return secondDateTimePicker2; 
    //  } 
    //  return null; 
    // } 
    //}, 
    //minDate: new Date().setHours(0, 0, 0, 0), 
    locale: locale 
}); 
$('[id^="datetimepickerStartDate"]') 
    .on("dp.change", 
    function (e) { 
     var id = $(this).attr('id'); 
     var str = id.split("_"); 
     if (str.length <= 1) { 
      $('#datetimepickerFinishDate').data("DateTimePicker").minDate(e.date); 
     } else { 
      $("#datetimepickerFinishDate_" + str[1]).data("DateTimePicker").minDate(e.date); 
      $(id).datetimepicker('hide'); 
     } 
    }); 

$('[id^="datetimepickerFinishDate"]') 
    .on("dp.change", 
    function (e) { 
     var id = $(this).attr('id'); 
     var str = id.split("_"); 
     if (str.length <= 1) { 
      $('#datetimepickerStartDate').data("DateTimePicker").maxDate(e.date); 
     } else { 
      $("#datetimepickerStartDate_" + str[1]).data("DateTimePicker").maxDate(e.date); 
      $(id).datetimepicker('hide'); 
     } 
     $(id).datetimepicker('hide'); 
    }); 
}); 

그 코드를하지만 내가 찾고 있어요 많은 내가있는 DateTimePicker의 처음 열에서 그 규칙을 설정하는 방법 방법입니다. 그래서, 나는 속성 maxDate과 minDate에서 e 함수를 실행하려고 생각했지만 작동하지 않는 것 같았다!

이 문제를 해결하는 방법에 대해 알고 싶습니다. 오버 착화이를 날짜를 처음으로 변경하면 dp.change 이벤트에만 작동

...

답변

0

당신은, 당신이 찾고있는 기본적됩니다 1) 첫 번째 선택 도구의 maxDate은 두 번째 선택기에서 선택한 항목 2) 두 번째 선택 도구에서 선택해야하는 최소 날짜는 첫 번째 선택 도구가있는 것입니다.

그래서, 예로서 공식 페이지에 있습니다 : http://eonasdan.github.io/bootstrap-datetimepicker/#linked-pickers

하지만 당신은 페이지의로드 값을 가지고,이 일반적인 스크립트가 모든

function AplicarLinkedDatePicker() { 
    var $Min = $('.datetimepickerMin'); 
    var $Max = $('.datetimepickerMax'); 

    var valInputMax = $Max.children(':input').val(); 
    var valInputMin = $Min.children(':input').val(); 

    var format = 'DD/MM/YYYY'; 

    $Min.datetimepicker({ 
     format: format, 
     useCurrent: false, 

    }); 

    $Max.datetimepicker({ 
     format: format, 
     useCurrent: false, 
    }); 

    $Min.on("dp.change", function (e) { 
     $Max.data("DateTimePicker").minDate(e.date); 
    }); 

    $Max.on("dp.change", function (e) { 
     $Min.data("DateTimePicker").maxDate(e.date); 
    }); 

    if (valInputMin != null) { 
     $Max.data("DateTimePicker").minDate(moment(valInputMin, format).startOf('day')); 
    } 

    if (valInputMax != null) { 
     $Min.data("DateTimePicker").maxDate(moment(valInputMax, format).endOf('day')); 
    } 


} 

그래서 그 위의합니까? does가 picker와 관련된 값을 가지고 있는지 확인하고 각각의 minDate와 maxDate를 설정합니다. 그렇지 않으면 무시되고 기본값으로 사용됩니다.