根据选择的值/月/年更改日期

时间:2019-07-23 06:56:42

标签: javascript jquery date

我想根据所选值更改日期

$(document).on('change', '.payment_options', function () {
    var value = $('#value_select').val();
    var data = $('#per_month_year').val();
    var d = new Date();
    d.setMonth(d.getMonth() + value);
    var subs_till = d.toDateString();
    if (data == 'month') {
        expire_date = subs_till;
    } else {
      //if data == year, change the membership valid till the value enter: like 2 years, 3 years etc
    }
    $('#membership_till_date').html(expire_date);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<label>Choose Value</label>
<select name="" class="form-control payment_options" id="value_select">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
    <option value="7">7</option>
    <option value="8">8</option>
    <option value="9">9</option>
    <option value="10">10</option>
    <option value="11">11</option>
    <option value="12">12</option>
</select>

<label>Choose month/year</label>
<select name="" class="form-control payment_options" id="per_month_year">
    <option value="month">Month(s)</option>
    <option value="year">Year(s)</option>
</select>

<br>
<small>Membership valid from 'Today' to <span id="membership_till_date">"this have to change after choosing value/month-year"</span></small>

但是问题是它给了结果+5 year,我想准确地显示数据,如果他们选择值数据,则显示“现在到+5个月的格式”,“现在到2年的格式” ,等等。在会员有效部分中

1 个答案:

答案 0 :(得分:2)

当您获得文本字段的值时,总会得到一个字符串。

例如,如果您在value_select字段中选择数字2,则您的代码将返回字符串值“ 2”。

var value = $('#value_select').val();

因此您需要将String值转换为整数,您可以像这样进行操作:

var value = parseInt($('#value_select').val());

您的代码即可正常工作