2017-01-16 63 views
0

我不能阻止當前的日子,如果一天中的時間比我的狀態16倍大...條件塊當天日期選擇器

我想阻止當前的日子,如果一天的時間大於16.感謝你的幫助

<script> 
     $(document).ready(function() { 

      $("#datepicker").datepicker().datepicker('setDate', new Date()); 

      var d = new Date(); 
      var n = d.getHours(); 


      if (n>16) { 
       var disableddates = ["14-01-2017", "15-01-2017"]; 
      } 


      function DisableSpecificDates(date) { 
       var string = jQuery.datepicker.formatDate('dd-mm-yy', date); 
       return [disableddates.indexOf(string) == -1]; 
      } 


      $(function() { 
       $("#datepicker").datepicker(); 
       $.datepicker.regional['fr'] = { 
        closeText: 'Fermer', 
        prevText: 'Précédent', 
        nextText: 'Suivant', 
        currentText: 'Aujourd\'hui', 
        monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre'], 
        monthNamesShort: ['Janv.','Févr.','Mars','Avril','Mai','Juin','Juil.','Août','Sept.','Oct.','Nov.','Déc.'], 
        dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'], 
        dayNamesShort: ['Dim.','Lun.','Mar.','Mer.','Jeu.','Ven.','Sam.'], 
        dayNamesMin: ['D','L','M','M','J','V','S'], 
        weekHeader: 'Sem.', 
        dateFormat: 'dd/mm/yy', 
        firstDay: 1, 
        isRTL: false, 
        showMonthAfterYear: false, 
        beforeShowDay: DisableSpecificDates, 
        minDate: 0, 
        yearSuffix: ''}, 
        $.datepicker.setDefaults($.datepicker.regional['fr']); 
      }); 
     }); 
    </script> 
+0

你是什麼意思?你可以發佈其餘的代碼嗎? –

+0

你有一個數組有一個項目,一個空字符串,這將如何匹配包含日期的字符串? – adeneo

+0

這與'JSON.stringify'有什麼關係?另外,您將日期與兩位數年份('formatDate('dd-mm-yy',date)')進行比較,日期有四位數字('「14-01-2017」')... –

回答

0

我會設置在運行過程中minDate值與n > 16 ? 1 : 0

工作代碼片段:

$(document).ready(function() { 
 

 
    $("#datepicker").datepicker().datepicker('setDate', new Date()); 
 

 
    var d = new Date(); 
 
    var n = d.getHours(); 
 

 
    $(function() { 
 
    $("#datepicker").datepicker(); 
 
    $.datepicker.regional['fr'] = { 
 
     closeText: 'Fermer', 
 
     prevText: 'Précédent', 
 
     nextText: 'Suivant', 
 
     currentText: 'Aujourd\'hui', 
 
     monthNames: ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'], 
 
     monthNamesShort: ['Janv.', 'Févr.', 'Mars', 'Avril', 'Mai', 'Juin', 'Juil.', 'Août', 'Sept.', 'Oct.', 'Nov.', 'Déc.'], 
 
     dayNames: ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'], 
 
     dayNamesShort: ['Dim.', 'Lun.', 'Mar.', 'Mer.', 'Jeu.', 'Ven.', 'Sam.'], 
 
     dayNamesMin: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], 
 
     weekHeader: 'Sem.', 
 
     dateFormat: 'dd/mm/yy', 
 
     firstDay: 1, 
 
     isRTL: false, 
 
     showMonthAfterYear: false, 
 
     minDate: n > 16 ? 1 : 0, 
 
     yearSuffix: '' 
 
     }, 
 
     $.datepicker.setDefaults($.datepicker.regional['fr']); 
 
    }); 
 
});
<!doctype html> 
 
<html lang="en"> 
 

 
<head> 
 
    <meta charset="utf-8"> 
 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
 
    <title>jQuery UI Datepicker - Default functionality</title> 
 
    <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css"> 
 
    <link rel="stylesheet" href="/resources/demos/style.css"> 
 
    <script src="https://code.jquery.com/jquery-1.12.4.js"></script> 
 
    <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script> 
 
</head> 
 

 
<body> 
 

 
    <p>Date: 
 
    <input type="text" id="datepicker"> 
 
    </p> 
 

 

 
</body> 
 

 
</html>

+1

謝謝爲了您的幫助,它效果很好 – clement

相關問題