Jquery添加到目前为止的月份

时间:2017-02-22 18:10:44

标签: javascript jquery

我需要在jQuery中添加一个月的日期。一切都好,但是当日期是29或30或31时我有问题,因为11月31日不存在,2月30日不存在,有时2月29日不存在。

如果您想要添加一个月,并且如果该月的日期太大,请将当天减少到该月的最后一天。

这是我的fiddle code



$(".demo").append("<p>Right</p>");
var dateSrt = new Date(2016, 7, 24);

for (var i = 1; i<=12; i++) {
    if (i == 1) {
        dateSrt.setMonth(dateSrt.getMonth());
    } else {
        dateSrt.setMonth(dateSrt.getMonth() + 1);
    }
    var txtDay = $.datepicker.formatDate('dd-mm-yy', dateSrt);
    $(".demo").append("<label>" + txtDay + "</label><br>");
}

$(".demo").append("<p>Wrong (in this case if the date is incorrect must to be the last of the day)</p>");
var dateSrt=new Date(2016, 7, 30);

for (var i = 1; i<=12; i++) {
    if (i == 1) {
        dateSrt.setMonth(dateSrt.getMonth());
    } else {
        dateSrt.setMonth(dateSrt.getMonth() + 1);
    }
    var txtDay = $.datepicker.formatDate('dd-mm-yy', dateSrt);
    $(".demo").append("<label>" + txtDay + "</label><br>");
}
&#13;
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://code.jquery.com/ui/1.9.2/jquery-ui.min.js"></script>
<div class="demo"></div>
&#13;
&#13;
&#13;

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

这种方法需要使用datejs(here) 我们可以非常轻松地在一个日期添加一个月:

Sat Jan 31 2009 00:00:00 GMT+1100 (EST)
Sat Feb 28 2009 00:00:00 GMT+1100 (EST)

以上的输出将是这样的;

def setUp(self, url):
    self.driver = webdriver.Firefox()
    #self.actions = ActionChains(self.driver)
    self.driver.get(url)
    time.sleep(3)

def clicker(self):
    driver = self.driver
    actions = ActionChains(driver)
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight)")
    driver.execute_script("window.scrollTo(0, -document.body.scrollHeight)")
    time.sleep(1)

    searchQueryID = 'search_query'
    searchQueryElement = driver.find_element_by_id(searchQueryID)
    webdriver.ActionChains(driver).move_to_element(searchQueryElement).perform()

有关详细信息,请点击此处:

datejs.com

由于

此处还有工作小提琴链接,使用dates.js添加当前日期的月数。你可以相应地修改它。

http://www.markhneedham.com/blog/2009/01/07/javascript-add-a-month-to-a-date/

由于

答案 1 :(得分:1)

好像你可以简单地检查新月号是否超过当前月份数+ 1,然后设置上个月的最后一天:

$('.demo').append('<p>Right</p>');
var dateSrt = new Date(2016, 6, 30);
var currentDay = dateSrt.getDate();

for (var i = 0; i <= 11 ; i++) {
    var currentMonth = dateSrt.getMonth();
    dateSrt.setMonth(currentMonth + 1, currentDay);

    if (dateSrt.getMonth() > currentMonth + 1) {
        dateSrt.setDate(0);
    }

    var txtDay = $.datepicker.formatDate('dd-mm-yy', dateSrt);
    $('.demo').append('<label>' + txtDay + '</label><br>');
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
<div class="demo"></div>

JSFiddle