如果当前日期是用户的生日,如何验证年龄和提醒?
How to validate age and alert if the current date is the user's birthday?
好的,我是 Javascript 的新手(我大约 2 个月前开始使用我的计算机 class)并且我正在做一个作业,需要包含出生日期的表格(每个下拉列表中都有 day/month/year)并且我需要能够:
a) 确认用户已超过 18 岁,否则发送提醒。
和;
b) 如果当天是用户生日
,则提供 "happy birthday" 消息
我不知疲倦地寻找解决方案,但找不到我理解的解决方案。
这是我到目前为止所得到的:
<form name="contest">
Date of Birth:
Year: <select name="year">
<option></option>
<option>2015</option>
<option>2014</option>
<option>2013</option>
<option>2012</option>
<option>2011</option>
<option>2010</option>
<option>2009</option>
<option>2008</option>
<option>2007</option>
<option>2006</option>
<option>2005</option>
<option>2004</option>
<option>2003</option>
<option>2002</option>
<option>2001</option>
<option>2000</option>
<option>1999</option>
<option>1998</option>
<option>1997</option>
<option>1996</option>
<option>1995</option>
<option>1994</option>
<option>1993</option>
<option>1992</option>
<option>1991</option>
<option>1990</option>
</select>
Month: <select name="month">
<option></option>
<option value="jan">January</option>
<option value="feb">February</option>
<option value="mar">March</option>
<option value="apr">April</option>
<option value="may">May</option>
<option value="jun">June</option>
<option value="jul">July</option>
<option value="aug">August</option>
<option value="sep">September</option>
<option value="oct">October</option>
<option value="nov">November</option>
<option value="dec">December</option>
</select>
Day: <select name="day">
<option></option>
<option>01</option>
<option>02</option>
<option>03</option>
<option>04</option>
<option>05</option>
<option>06</option>
<option>07</option>
<option>08</option>
<option>09</option>
<option>10</option>
<option>11</option>
<option>12</option>
<option>13</option>
<option>14</option>
<option>15</option>
<option>16</option>
<option>17</option>
<option>18</option>
<option>19</option>
<option>20</option>
<option>21</option>
<option>22</option>
<option>23</option>
<option>24</option>
<option>25</option>
<option>26</option>
<option>27</option>
<option>28</option>
<option>29</option>
<option>30</option>
<option>31</option>
</select>
<input type="button" name="" onClick="checkInput(this.form)" value="Submit"/>
<input type="reset"/>
</form>
如有任何帮助,我们将不胜感激!谢谢:)
直截了当。
function checkInput()
{
// get today's date.
var today = new Date();
today.setHours(0,0,0,0); // set time to start of day for comparison.
// create a new date based on user input.
var bdate = new Date(Date.parse(
document.querySelector('select[name="year"]').value + ' ' +
document.querySelector('select[name="month"]').value + ' ' +
document.querySelector('select[name="day"]').value
));
today.setYear(0); // ignore year part of date.
bdate.setYear(0); // ignore year part of date.
if (today.valueOf() == bdate.valueOf())
{
alert('Happy Birthday');
}
else
{
alert('Merry Unbirthday.');
}
}
在您的函数 (checkInput) 中,您需要检查当前日期是否与用户提供的日期相同。您可以通过以下方式获取当前日期:
var today = new Date();
var day = today.getDate();
var month = today.getMonth()+1; // +1 Because january is 0
var year = today.getFullYear();
然后很容易进行比较。
好的,我是 Javascript 的新手(我大约 2 个月前开始使用我的计算机 class)并且我正在做一个作业,需要包含出生日期的表格(每个下拉列表中都有 day/month/year)并且我需要能够:
a) 确认用户已超过 18 岁,否则发送提醒。
和;
b) 如果当天是用户生日
,则提供 "happy birthday" 消息我不知疲倦地寻找解决方案,但找不到我理解的解决方案。 这是我到目前为止所得到的:
<form name="contest">
Date of Birth:
Year: <select name="year">
<option></option>
<option>2015</option>
<option>2014</option>
<option>2013</option>
<option>2012</option>
<option>2011</option>
<option>2010</option>
<option>2009</option>
<option>2008</option>
<option>2007</option>
<option>2006</option>
<option>2005</option>
<option>2004</option>
<option>2003</option>
<option>2002</option>
<option>2001</option>
<option>2000</option>
<option>1999</option>
<option>1998</option>
<option>1997</option>
<option>1996</option>
<option>1995</option>
<option>1994</option>
<option>1993</option>
<option>1992</option>
<option>1991</option>
<option>1990</option>
</select>
Month: <select name="month">
<option></option>
<option value="jan">January</option>
<option value="feb">February</option>
<option value="mar">March</option>
<option value="apr">April</option>
<option value="may">May</option>
<option value="jun">June</option>
<option value="jul">July</option>
<option value="aug">August</option>
<option value="sep">September</option>
<option value="oct">October</option>
<option value="nov">November</option>
<option value="dec">December</option>
</select>
Day: <select name="day">
<option></option>
<option>01</option>
<option>02</option>
<option>03</option>
<option>04</option>
<option>05</option>
<option>06</option>
<option>07</option>
<option>08</option>
<option>09</option>
<option>10</option>
<option>11</option>
<option>12</option>
<option>13</option>
<option>14</option>
<option>15</option>
<option>16</option>
<option>17</option>
<option>18</option>
<option>19</option>
<option>20</option>
<option>21</option>
<option>22</option>
<option>23</option>
<option>24</option>
<option>25</option>
<option>26</option>
<option>27</option>
<option>28</option>
<option>29</option>
<option>30</option>
<option>31</option>
</select>
<input type="button" name="" onClick="checkInput(this.form)" value="Submit"/>
<input type="reset"/>
</form>
如有任何帮助,我们将不胜感激!谢谢:)
直截了当。
function checkInput()
{
// get today's date.
var today = new Date();
today.setHours(0,0,0,0); // set time to start of day for comparison.
// create a new date based on user input.
var bdate = new Date(Date.parse(
document.querySelector('select[name="year"]').value + ' ' +
document.querySelector('select[name="month"]').value + ' ' +
document.querySelector('select[name="day"]').value
));
today.setYear(0); // ignore year part of date.
bdate.setYear(0); // ignore year part of date.
if (today.valueOf() == bdate.valueOf())
{
alert('Happy Birthday');
}
else
{
alert('Merry Unbirthday.');
}
}
在您的函数 (checkInput) 中,您需要检查当前日期是否与用户提供的日期相同。您可以通过以下方式获取当前日期:
var today = new Date();
var day = today.getDate();
var month = today.getMonth()+1; // +1 Because january is 0
var year = today.getFullYear();
然后很容易进行比较。