我正在尝试使用jquery / js代码,用户选择出生月份然后计算到下一个出生月份(从今天开始)?我是javascript的新手,无法弄清楚这个日期的东西..我一直得到一个无效的日期错误我希望用户选择一个月,它从现在减去()...来计算出剩下多少个月下一个生日。只是处理几个月而不用担心几天或几年......有什么建议吗?
get to the next birth month (from today)?
<select name="month1" id="month1" onchange="date()" size="1">
<option value="0">January</option>
<option value="1">February</option>
<option value="2">March</option>
<option value="3">April</option>
<option value="4">May</option>
<option value="5">June</option>
<option value="6">July</option>
<option value="7">August</option>
<option value="8">September</option>
<option value="9">October</option>
<option value="10">November</option>
<option value="11">December</option>
</select>
<script language="JavaScript">
function date() {
var birthmonth = new Date(month1.value);
var today = new Date();
}
document.write("From "+birthmonth+" to "+today+" is "+datediff(birthmonth,today)+" day(s)<br>");
</script>
答案 0 :(得分:4)
使用Date对象的getter和setter方法。所以:
var d = new Date();
// today's month
var month = d.getMonth();
// set the month to January
d.setMonth(0);
这是根据所选值计算差异的一个非常基本的例子(使用jQuery 1.11):
更新:修订版本计算到达出生月份的月份。
http://jsfiddle.net/moj94ppe/1/
更新:包含选项的修订版本。
答案 1 :(得分:2)
我创建它来计算差异:
function date(obj) {
var birthmonthDate = new Date();
var birthmonth = new Date(birthmonthDate.setMonth(parseInt(obj.value, 10) - 1, 1));
var today = new Date();
console.log("From " + birthmonth + " to " + today + " is " + DateDiff.inDays(today, birthmonth) + " day(s)<br>");
}
var DateDiff = {
inDays: function(d1, d2) {
var t2 = d2.getTime();
var t1 = d1.getTime();
return parseInt((t2 - t1) / (24 * 3600 * 1000));
},
inWeeks: function(d1, d2) {
var t2 = d2.getTime();
var t1 = d1.getTime();
return parseInt((t2 - t1) / (24 * 3600 * 1000 * 7));
},
inMonths: function(d1, d2) {
var d1Y = d1.getFullYear();
var d2Y = d2.getFullYear();
var d1M = d1.getMonth();
var d2M = d2.getMonth();
return (d2M + 12 * d2Y) - (d1M + 12 * d1Y);
},
inYears: function(d1, d2) {
return d2.getFullYear() - d1.getFullYear();
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="month" id="month" onchange="date(this)" size="1">
<option value="01">January</option>
<option value="02">February</option>
<option value="03">March</option>
<option value="04">April</option>
<option value="05">May</option>
<option value="06">June</option>
<option value="07">July</option>
<option value="08">August</option>
<option value="09">September</option>
<option value="10">October</option>
<option value="11">November</option>
<option value="12">December</option>
</select>
<br>
您可以在函数中传递此(指向DOM元素)以获取所选月份的值。
<强>参考强>