1、var someDate = new Date(Date.parse("May 25, 2004")); <=> var someDate = new Date("May 25, 2004");
//Date.parse()返回表示该日期的毫秒数(从UTC时间1970年1月1日午夜开始)
//如果直接将表示日期的字符串传递给Date构造函数,也会在后台调用Date.parse()
//如果传入Date.parse()方法的字符串不能表示日期,那么它会返回NaN;
2、var someDate = new Date(Date.UTC(2000, 0)); <=> var someDate = new Date("2000, 0");
//Date.UTC()返回表示该日期的毫秒数(从UTC时间1970年1月1日午夜开始)
//Date.UTC() @param 默认值为0。 年份,基于0的月份,月份中的哪一天(默认为1),小时数(0-23),分钟、秒、毫秒
//日期和时间基于本地市区而非GMT来创建
3、不同浏览器对符合日期格式但不符合日期逻辑的日期会进行不同的处理;有些会将超出范围的值替换成当前的值。
3、判断用户输入的日期是否合法(这里暂不考虑用户输入的日期为格式错误日期,只考虑日期不符合常理的情况,如 2013-02-31 )
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Date checker</title>
</head>
<body>
<span>输入 年月日:</span>
<input id="yr" name="yr" type="text" />
<input id="mth" name="yr" type="text" />
<input id="day" name="yr" type="text" />
<input id="checker" name="yr" type="button" value="检查日期"/>
</body>
<script type="text/javascript" >
(function(){
checker.onclick = function(){
var year = parseInt(document.getElementById("yr").value, 10) ,
month = parseInt( document.getElementById("mth").value, 10),
day = parseInt(document.getElementById("day").value, 10),
checker = document.getElementById("checker"); var dateSTr = month+'/'+day+'/'+ year,
date = new Date(dateSTr),
rightDate = !isNaN(date); //判断是否符合日期格式,如 "1988/02/05" 则 isNaN if(rightDate){
//如果创建的date(根据3)转换得到的日期,与当前输入的日期一致,则表示输入合法; 如”1988/02/31“则不合法
if(month == date.getMonth()+1 && day == date.getDate() && year == date.getFullYear()){ //此处注意month+1
alert("日期合法");
} else {
alert("日期不合法");
}
} else {
alert("日期格式错误!");
}
} })();
</script>
</html>