我想在特定日期添加月数,并使用javascript以mm / dd / yy格式获取结果
例如;这是我的约会04/01/2016
我的频率是每年,每六个月,每三个月,每两个月,每月,每月两次,每两周,每周,每四周,一次。
如果我选择每月选项,结果日期应为05/01/2016
有人可以帮我吗?
答案 0 :(得分:0)
首先,您需要将日期记入Date
对象。
var myDate = new Date("2016-04-01 00:00:00");
Date
需要在ISO format中格式化输入。
然后,您可以使用以下内容添加不同的月份数:
var myDate_6Months = new Date(myDate.setMonth(myDate.getMonth() + 6));
上面这一行通过抓住您的原始日期来创建一个新的Date
对象,并为其添加所需的月份数量。
如果你要输出myDate_6Months
,你会得到:
Sat Oct 01 2016 00:00:00
增加11个月:
var myDate_11Months = new Date(myDate.setMonth(myDate.getMonth() + 11))
会导致:
Wed Mar 01 2017 00:00:00
为了在mm/dd/yy
一个简单的方法中获取日期,请使用moment.js。
moment(myDate_6Months).format('MM/DD/YY')
答案 1 :(得分:0)
我假设你会在某些事件上添加日期,我在这里解释了点击事件。
HTML
<ul>
<li><button data-add="1 year">Add Year</button></li>
<li><button data-add="6 month">Add 6 month</button></li>
<li><button data-add="3 month">Add 3 month</button></li>
<li><button data-add="2 month">Add 2 month</button></li>
<li><button data-add="1 month">Add 1 month</button></li>
<li><button data-add="2 weeks">Add 2 weeks</button></li>
</ul>
JS
$('button').on('click', function() {
console.log("button click");
var myDate = new Date();
console.log(myDate);
var timeSpan = $(this).attr("data-add");
switch(timeSpan) {
case "1 year":
myDate = myDate.setFullYear(myDate.getFullYear() + 1);
break;
case "3 month":
myDate = myDate.setMonth(myDate.getMonth() + 3);
break;
default:
break;
}
console.log(myDate);
moment(myDate).format('MM/DD/YYYY');//include moment js to format date
});
使用上面的代码,您可以添加特定的时间。对于格式化日期,您可以使用moment.js
jsbin是here