如何设置格式的默认日期 'MM/dd/yyyy'

How to set default date of format 'MM/dd/yyyy'

这是我使用 Bootstrap datetimepicker 创建日历的代码:

$('#datetimepicker12').datetimepicker({
    inline: true,
    format: 'MM/dd/yyyy',
    minDate: new Date(moment(new Date()).add(0, 'days').toDate()),
    maxDate: new Date(moment(new Date()).add(7, 'days').toDate()),
});

现在我想将日历的默认日期设置为我的自定义日期,它的格式是这样的 '2017-03-30'

如何将其转换为与我之前设置的 datetimepicker 格式相同的格式?

$.datepicker.setDefaults({
    dateFormat: 'yy-mm-dd'
});

此处记录了有效格式:

https://eonasdan.github.io/bootstrap-datetimepicker/Options/#format

从那里您可以阅读:

有关有效格式,请参阅 momentjs 的文档。格式还规定显示哪些组件,例如MM/dd/YYYY 不会显示时间选择器。

http://momentjs.com/docs/#/displaying/format/

因此对于您的特定情况,它将是:

format: 'MM/DD/YYYY'  //(all uppercase)

并设置您需要使用的默认值:

defaultDate:

defaultDate 的文档是 here

Bootstrap datetimepicker 使用 momentjs 来管理日期,所以:

  • 您的 minDatemaxDate 选项中不需要 new Date(...)toDate()
  • format option should be compliant to moment tokens,在你的情况下把它改成大写 MM/DD/YYYY.

选择器有一个 defaultDate option, you can use it to set 2017-03-30 as default date, you simply have to parse 它使用 moment(moment('2017-03-30') 就足够了,因为您输入的是受支持的 ISO 8601 格式)。

请注意,如果您必须默认为当前日期,则 datimepicker 有 useCurrent 选项。

这是一个工作示例:

$('#datetimepicker12').datetimepicker({
  inline: true,
  format: 'MM/DD/YYYY',
  minDate: moment().startOf('day'),
  maxDate: moment().add(7, 'days').endOf('day'),
  defaultDate: moment('2017-03-30')
});
<link href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.css" rel="stylesheet"/>
<link href="//cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.37/css/bootstrap-datetimepicker.css" rel="stylesheet"/>

<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.37/js/bootstrap-datetimepicker.min.js"></script>

<div class="form-group">
  <div class="row">
    <div class="col-md-8">
      <div id="datetimepicker12"></div>
    </div>
  </div>
</div>

代码段在 2017-30-17 之后将不起作用,因为默认日期将不包含在 minDatemaxDate 之间。