jQuery UI DatePicker中的setDate

时间:2016-03-06 12:24:32

标签: javascript jquery jquery-ui datepicker jquery-ui-datepicker

setDatedateFormat : 'yy-mm'一起使用时,jQuery UI DatePicker会显示今天的日期,而不会显示setDate中指定的日期。

示例:http://jsfiddle.net/DBpJe/7981/(从https://stackoverflow.com/a/2209104/5568549编辑)


但是dateFormat : 'yy-mm-dd'会显示setDate中指定的日期。 示例:http://jsfiddle.net/DBpJe/7982/

如何使jQuery UI DatePicker显示setDatedateFormat : 'yy-mm'指定的日期?

2 个答案:

答案 0 :(得分:0)

发现了一篇文章:http://www.jquerybyexample.net/2012/06/show-only-month-and-year-in-jquery-ui.html

工作示例:http://jsfiddle.net/Twisty/xwnoafxd/

基本上你只需要添加defaultDate设置。其中一个facepalm事情。

$(function() {
  var myDate = new Date(2000, 6, 1);
  $('.date-picker').datepicker({
    changeMonth: true,
    changeYear: true,
    showButtonPanel: true,
    dateFormat: 'yy-mm',
    defaultDate: myDate,
    onClose: function(dateText, inst) {
      function isDonePressed() {
        return ($('#ui-datepicker-div').html().indexOf('ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all ui-state-hover') > -1);
      }
      if (isDonePressed()) {
        var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
        var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
        $(this).datepicker('setDate', new Date(year, month, 1));
        console.log('Done is pressed')
      }
    }
  }).datepicker("setDate", myDate);
});

答案 1 :(得分:0)

找到jQuery UI DatePicker to show month year only的解决方案
dateFormat : 'yy-mm'的工作示例:http://jsfiddle.net/DBpJe/8057/

beforeShow : function(input, inst) {

 if ((datestr = $(this).val()).length > 0) {
  year = datestr.substring(0, 4);
  month = datestr.substring(datestr.length-2, datestr.length);

  $(this).datepicker('option', 'defaultDate', new Date(year, month-1, 1));
  $(this).datepicker('setDate', new Date(year, month-1, 1));

 }
}