0

使用 Bootstrap 3 Datetimepicker v4 http://eonasdan.github.io/bootstrap-datetimepicker/以及 Moment 2.9 和其他所需文件。

当用户使用选择器选择日期时,无论输入字段的值如何,我都需要触发更改事件。对我来说,为输入设置一个空值并使用具有最大允许值的占位符是有意义的。

<div class="row">
<div class="col-sm-6"><div class="form-group">
<div class="input-group date" id="dayjump">
<input type="text" class="form-control" value="" placeholder="24" name="dayportal" id="dayportal" />
<span class="input-group-addon"><i class="fa fa-calendar"></i></span>
</div>
</div></div>
</div>

我似乎遇到的问题是当输入没有值时无法选择 maxDate。占位符的存在似乎对这个问题没有任何影响。

$("#dayjump").datetimepicker({
    useCurrent: false,
    format: "D",
    minDate: moment("2/7/2015","M/D/YYYY"),
    maxDate: moment("02/24/2015","M/D/YYYY"),
    icons: {
        time: "fa fa-clock-o",
        date: "fa fa-calendar",
        up: "fa fa-arrow-up",
        down: "fa fa-arrow-down",
        previous: "fa fa-angle-left",
        next: "fa fa-angle-right",
        today: "fa fa-thumb-tack",
        clear: "fa fa-trash"
    }
});
$("#dayjump").on("dp.change",function (e) {
    var y = moment(e.date).format("YYYY");
    _m = moment(e.date).format("M");
    _d = moment(e.date).format("D");
    alert("year=" + y + " month=" + _m + " date=" + _d);
});

在这里看小提琴https://jsfiddle.net/spasticdonkey/waoLzwz5/1/

您会注意到在示例中可以选择除 maxDate 之外的所有日期,并且尝试选择 maxDate 也不会更新输入字段。

4

3 回答 3

4

我认为,这是错误。我在控制台中有警告:

弃用警告:时刻构造回退到 js 日期。这是不鼓励的,将在即将发布的主要版本中删除。请参阅https://github.com/moment/moment/issues/1407了解更多信息。

您可以使用拐杖解决此问题:

maxDate: moment("02/25/2015","M/D/YYYY"),
disabledDates: [
      "02/25/2015"
],

设置日期 +1 并禁用它。

演示 https://jsfiddle.net/maxlipsky/waoLzwz5/4/

于 2015-02-23T05:30:26.537 回答
2

我解决这个问题的方法是设置maxDate如下:

maxDate: new Date().setHours(23,59,59,999)

如果您将 maxDate 设置为new Date()only,那么它将不允许选择今天的日期,因为在页面呈现时间之前可选择的最大日期已经过去。

于 2019-01-17T09:56:08.827 回答
1

这对我有用:

maxDate: moment("02/24/2015 23:59:59","MM/DD/YYYY HH:mm:ss")

我们不需要像接受的答案那样明确地提及和禁用日期

maxDate: moment("02/25/2015","M/D/YYYY") 
disabledDates: [ "02/25/2015" ] 

相反,我觉得这是一个更好的解决方法。请找到 js fiddle:jsfiddle.net/AbhinayKumarGunna/6jx723ep/57

于 2018-08-09T21:38:55.977 回答