2015-10-15 142 views
0

日期默認爲明天的日期而不是今天的日期。在Datepicker中更改默認顯示日期爲今天的日期

該網站是www.estesparkcabins.com/stiva/book.html

我想我縮小需要改變的代碼中。讓我知道你的想法。非常感謝。

/* Get a setting value, defaulting if necessary. */ 
_get: function(inst, name) { 
    return inst.settings[name] !== undefined ? 
     inst.settings[name] : this._defaults[name]; 
}, 

/* Parse existing date and initialise date picker. */ 
_setDateFromField: function(inst, noDefault) { 
    if (inst.input.val() === inst.lastVal) { 
     return; 
    } 

    var dateFormat = this._get(inst, "dateFormat"), 
     dates = inst.lastVal = inst.input ? inst.input.val() : null, 
     defaultDate = this._getDefaultDate(inst), 
     date = defaultDate, 
     settings = this._getFormatConfig(inst); 

    try { 
     date = this.parseDate(dateFormat, dates, settings) || defaultDate; 
    } catch (event) { 
     dates = (noDefault ? "" : dates); 
    } 
    inst.selectedDay = date.getDate(); 
    inst.drawMonth = inst.selectedMonth = date.getMonth(); 
    inst.drawYear = inst.selectedYear = date.getFullYear(); 
    inst.currentDay = (dates ? date.getDate() : 0); 
    inst.currentMonth = (dates ? date.getMonth() : 0); 
    inst.currentYear = (dates ? date.getFullYear() : 0); 
    this._adjustInstDate(inst); 
}, 

/* Retrieve the default date shown on opening. */ 
_getDefaultDate: function(inst) { 
    return this._restrictMinMax(inst, 
     this._determineDate(inst, this._get(inst, "defaultDate"), new Date())); 
}, 

/* A date may be specified as an exact value or a relative one. */ 
_determineDate: function(inst, date, defaultDate) { 
    var offsetNumeric = function(offset) { 
      var date = new Date(); 
      date.setDate(date.getDate() + offset); 
      return date; 
     }, 
     offsetString = function(offset) { 
      try { 
       return $.datepicker.parseDate($.datepicker._get(inst, "dateFormat"), 
        offset, $.datepicker._getFormatConfig(inst)); 
      } 
      catch (e) { 
       // Ignore 
      } 

      var date = (offset.toLowerCase().match(/^c/) ? 
       $.datepicker._getDate(inst) : null) || new Date(), 
       year = date.getFullYear(), 
       month = date.getMonth(), 
       day = date.getDate(), 
       pattern = /([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g, 
       matches = pattern.exec(offset); 

      while (matches) { 
       switch (matches[2] || "d") { 
        case "d" : case "D" : 
         day += parseInt(matches[1],10); break; 
        case "w" : case "W" : 
         day += parseInt(matches[1],10) * 7; break; 
        case "m" : case "M" : 
         month += parseInt(matches[1],10); 
         day = Math.min(day, $.datepicker._getDaysInMonth(year, month)); 
         break; 
        case "y": case "Y" : 
         year += parseInt(matches[1],10); 
         day = Math.min(day, $.datepicker._getDaysInMonth(year, month)); 
         break; 
       } 
       matches = pattern.exec(offset); 
      } 
      return new Date(year, month, day); 
     }, 
     newDate = (date == null || date === "" ? defaultDate : (typeof date === "string" ? offsetString(date) : 
      (typeof date === "number" ? (isNaN(date) ? defaultDate : offsetNumeric(date)) : new Date(date.getTime())))); 

    newDate = (newDate && newDate.toString() === "Invalid Date" ? defaultDate : newDate); 
    if (newDate) { 
     newDate.setHours(0); 
     newDate.setMinutes(0); 
     newDate.setSeconds(0); 
     newDate.setMilliseconds(0); 
    } 
    return this._daylightSavingAdjust(newDate); 
}, 

它還有其它一些js文件是這樣的:

}).on("focusin.hb", ".hbSelectorDatepick", function (e) { 
      if (datepicker) { 
       var $this = pjQ.$(this), 
        dOpts = { 
        dateFormat: $this.data("dformat"), 
        firstDay: $this.data("fday"), 
        monthNamesShort: self.opts.month_names, 
        dayNamesMin: self.opts.day_names, 
        minDate: 1, 
        changeMonth: true 
       }; 
       $this.datepicker(pjQ.$.extend(dOpts, { 
        beforeShow: function (input, ui) { 
         var dt_from, $chain, 
          name = ui.input.attr("name"); 

         if 

         (name == "date_from") { 
          ui.input.datepicker("option", "minDate", 0); 
         } else if (name == "date_to") { 
          $chain = ui.input.closest("form").find("input[name='date_from']"); 
          dt_from = $chain.datepicker(dOpts).datepicker("getDate"); 
          if (dt_from != null) { 
           ui.input.datepicker("option", "minDate", new Date(dt_from.getTime() + 86400*1000)); 
          } 
         } 

         ui.dpDiv.addClass('stivaDatepicker'); 
        }, 
        onSelect: function (dateText, ui) { 
         var dt_from, dt_to, $dt_to; 

         if (ui.input.attr("name") == "date_from") { 
          $dt_to = ui.input.closest("form").find("input[name='date_to']"); 
          dt_from = ui.input.datepicker(dOpts).datepicker("getDate"); 
          dt_to = $dt_to.datepicker(dOpts).datepicker("getDate"); 

          if (dt_from != null && dt_to != null && dt_from.getTime() > dt_to.getTime()) { 
           $dt_to.datepicker("option", "minDate", new Date(dt_from.getTime() + 86400*1000)); 
          } 
         } 
        } 
       })); 
      } 

回答

0

這是很簡單的,你不需要改變任何東西。只需更改日期選擇器的初始化代碼即可。

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

+0

讓我知道這是否解決了問題。 –

+0

感謝您的評論。在我的研究中,我也認爲我可以插入它,但它沒有奏效。關於我應該把代碼放在哪裏的任何其他想法?我添加了另一段代碼,這些代碼似乎對應於顯示檢查。我不明白爲什麼datepicker會在大約3個獨立的js文件中。謝謝你的時間!! – EclecticMaster

+0

您正在使用哪個日期選擇器? jQuery的默認日期選擇器或引導日期選擇器?請給你初始化代碼。 –

相關問題