我需要在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;
有什么建议吗?
答案 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()
有关详细信息,请点击此处:
由于
此处还有工作小提琴链接,使用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>