获取输入日期并将其输入为 Jquery 日期选择器的 minDate

Take date of input and enter it as the minDate of the Jquery datepicker

我有以下输入:

<input type="hidden" class="old_ship_date" name="old_ship_date" value="<?php echo esc_attr( substr( $current_date, 0, 10 ) ); ?>">

该输入中的日期是“yyyy-mm-dd”。

我想将该日期输入到日期选择器的 minDate 选项中。有什么方法可以只输入日期吗?

jQuery(document).ready(function($){
    var now = new Date();
    $('#mypicker').datepicker({
    //options
    dateFormat: "yyyy-mm-dd",
    minDate: $('.old_ship_date').val(),
    firstDay: 0,
    onSelect: function(dateText) {
        $('.new_ship_date').val('');
        $('.new_ship_date').val(dateText);
    },
    beforeShowDay: $.datepicker.noWeekends,
});

像下面这样尝试

jQuery(document).ready(function($){
  var now = new Date();

  var dt =  $('.old_ship_date').val();
  $('#mypicker').datepicker({
    //options
    dateFormat: "yyyy-mm-dd",
    minDate: new Date(dt),
    firstDay: 0,
    onSelect: function(dateText) {
      $('.new_ship_date').val('');
      $('.new_ship_date').val(dateText);
    },
    beforeShowDay: $.datepicker.noWeekends,
  }); 

隐藏输入真的有必要吗?

然后:

  1. minDate 必须是日期对象。
  2. 为了保证不会出现时区问题,经常会莫名其妙的减去1天...也有必要指定时间。所以将 00:00:00 添加到日期...

jQuery(document).ready(function($){
  $('#mypicker').datepicker({
    //options
    dateFormat: "yyyy-mm-dd",
    minDate: new Date("<?php echo esc_attr( substr( $current_date, 0, 10 ) ); ?> 00:00:00"),
    firstDay: 0,
    onSelect: function(dateText) {
        $('.new_ship_date').val('');
        $('.new_ship_date').val(dateText);
    },
    beforeShowDay: $.datepicker.noWeekends,
  });
});