1

我已经设法为AnyTime中的数据范围选择器拼凑了一些代码:

$(document).ready(function() {
    $("#date_start").AnyTime_noPicker().removeAttr("disabled").AnyTime_picker({format:"%Y-%m-%d",earliest:new Date(2000,0,1,0,0,0)});
    $("#date_end").AnyTime_noPicker().removeAttr("disabled").AnyTime_picker({format:"%Y-%m-%d",earliest:new Date(2000,0,1,0,0,0)});
    var rangeFormat = "%Y-%m-%d";
    var rangeConv = new AnyTime.Converter({format:rangeFormat});
    var oneDay = 60*1*1000;
    $("#date_start").change( function() {
        var fromDay = rangeConv.parse($("#date_start").val()).getTime();
        var ToDay = rangeConv.parse($("#date_end").val()).getTime();
        if (fromDay > ToDay) {
            var ninetyDaysLater = new Date(fromDay + oneDay);
            $("#date_end").AnyTime_noPicker().removeAttr("disabled").val(rangeConv.format(ninetyDaysLater)).AnyTime_picker({
                earliest: ninetyDaysLater,
                format: rangeFormat
            });
        }
    });
    $("#date_end").change( function() {
        var fromDay = rangeConv.parse($("#date_end").val()).getTime();
        var ToDay = rangeConv.parse($("#date_start").val()).getTime();
        if (fromDay < ToDay) {
            var ninetyDaysLater = new Date(fromDay - oneDay);
            $("#date_start").AnyTime_noPicker().removeAttr("disabled").val(rangeConv.format(ninetyDaysLater)).AnyTime_picker({
                earliest: ninetyDaysLater,
                format: rangeFormat
            });
        }
    });
});

...它具有以下 HTML 元素:

<label for="date_start">Start Date of Event</label>
<input type="text" name="date_start" value="" id="date_start" />
<label for="date_end">End Date of Event</label>
<input type="text" name="date_end" value="" id="date_end" />

但是,它给了我错误,我不知道为什么。

在其他网站上倾倒了类似的代码,并且在我能够找到的几个教程中,我看不出代码有什么问题。

当我单击第一个日期字段时,会出现一系列错误:

不是“%Y-%m-%d”格式

...在 AnyTime 本身的代码 (anytime.5.0.1-1403131246.js) 中的第 971 行出现了两次,然后在同一文件中的同一行中再组合三个。当我点击第二个字段时,我得到了同样的错误。但在那之后,代码开始工作。

因为我无法在我的代码中隔离源代码,所以我只是不知道从哪里开始(我处于 jQuery 的绿色学习模式)。

4

1 回答 1

0

最后,解决方案很简单。我必须用值预先填充字段。

在这种情况下:

"date_start" = date("Ymd")

"date_end" = date("Ymd", strtotime("+1 day"))

简单的。

于 2014-07-08T19:24:50.883 回答