如何添加一天来挑选v3日期

时间:2014-04-02 15:08:32

标签: javascript jquery html date

我已经设置了一个包含2个pickadates的页面。一个用于开始日期,一个用于结束日期。

我还有许多复选框,标记为:

  

1天,1个月,1年

用户从第一个pickadate中选择一个日期。他们可以从第二个选择中选择第二个日期。

但我希望提供第二种选择。如果他们检查1天,第2次选择将是1天+第1次补丁的结果。同样适用于1个月和1年的复选框。

无论如何要做到这一点?

我目前的HTML是:

    <div class="inputdata">
        <label>Timeframe:</label>
        <span>
        <div class="section__block section__block--scoped">
            From:
            <fieldset>
              <input type="text" id="input_from">
            </fieldset>
            To:
            <fieldset>
              <input type="text" id="input_to">
            </fieldset>
        </div>
        </span>
        <div class="clear"></div>
    <span><input id="x_timeframe" type="date" name="date_timeframe"></span>
        <label></label>
        <span id="x_timeframe_checkboxes">
            <input type="radio" name="a_timeframe" id="radio4" value="d" class="css-checkbox"/>
            <label for="radio4" class="css-label">1 Day</label>

            <input type="radio" name="a_timeframe" id="radio5" value="w" class="css-checkbox"  />
            <label for="radio5" class="css-label">1 Week</label>

            <input type="radio" name="a_timeframe" id="radio6" value="m" class="css-checkbox" />
            <label for="radio6" class="css-label">1 Month</label>

            <input type="radio" name="a_timeframe" id="radio8" value="n" class="css-checkbox"  />
            <label for="radio8" class="css-label">None</label>
        </span>
    </div>

为了熟悉,js包括:

<script src="/x/js/calendar/pickadate.js-3.4.0/lib/picker.js"></script>
<script src="/x/js/calendar/pickadate.js-3.4.0/lib/picker.date.js"></script>
<script src="/x/js/calendar/pickadate.js-3.4.0/lib/picker.time.js"></script>
<script src="/x/js/calendar/pickadate.js-3.4.0/lib/legacy.js"></script>
<script src="/x/js/calendar/pickadate.js-3.4.0/demo/scripts/main.js"></script>
<script src="/x/js/calendar/pickadate.js-3.4.0/lib/pickadate1454.js"></script>

2 个答案:

答案 0 :(得分:0)

你可以只使用JS来做这个技巧,从你的日期字段中获取值并在js日期中转换并添加天或飞蛾。

我总是创建7个函数,在JS中使用日期:addSeconds,addMinutes,addHours,addDays,addWeeks,addMonths,addYears。

您可以在此处查看示例:http://jsfiddle.net/tiagoajacobi/YHA8x/

使用方法:

var now = new Date();
console.log(now.addWeeks(3));

这是功能:

        Date.prototype.addSeconds = function(seconds) {
            this.setSeconds(this.getSeconds() + seconds);
            return this;
        };

        Date.prototype.addMinutes = function(minutes) {
            this.setMinutes(this.getMinutes() + minutes);
            return this;
        };

        Date.prototype.addHours = function(hours) {
            this.setHours(this.getHours() + hours);
            return this;
        };

        Date.prototype.addDays = function(days) {
            this.setDate(this.getDate() + days);
            return this;
        };

        Date.prototype.addWeeks = function(weeks) {
            this.addDays(weeks*7);
            return this;
        };

        Date.prototype.addMonths = function (months) {
            var dt = this.getDate();

            this.setMonth(this.getMonth() + months);
            var currDt = this.getDate();

            if (dt !== currDt) {  
                this.addDays(-currDt);
            }

            return this;
        };

        Date.prototype.addYears = function(years) {
            var dt = this.getDate();

            this.setFullYear(this.getFullYear() + years);

            var currDt = this.getDate();

            if (dt !== currDt) {  
                this.addDays(-currDt);
            }

            return this;
        };

答案 1 :(得分:0)

#from_picker +1天

var from_picker = $('#input_from').pickadate(), to_picker = $('#input_from').pickadate();

from_picker.pickadate('picker').on('set', function (event) {
    if (event.select) {
        to_picker.pickadate('picker').set('select', from_picker.pickadate('picker').get('select').pick + 1 * 24 * 60 * 60 * 1000);
    }
});