我正在尝试进行日期验证。
我的要求是用户不能选择过去的日期和时间。在我更改本地电脑的日期和时间之前,它运行良好。
我将用户选择的日期和时间与javascript的new Date()
对象进行比较,但发现它从本地机器的日期中获取日期。所以,若用户更改其本地机器的日期(将其设置为过去的日期),那个么他就可以选择过去的日期。
任何服务器端(Java)解决方案也是可以接受的。也可以尝试一下,但Java的日期对象(Java.util.date)也从本地机器的日期中获取日期,所以运气不好。
谢谢。
为此,您应该从服务器获取日期和时间。
serverDateTime.js
var xmlHttp;
function srvTime(){
try {
//FF, Opera, Safari, Chrome
xmlHttp = new XMLHttpRequest();
}
catch (err1) {
//IE
try {
xmlHttp = new ActiveXObject('Msxml2.XMLHTTP');
}
catch (err2) {
try {
xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
}
catch (eerr3) {
//AJAX not supported, use CPU time.
alert("AJAX not supported");
}
}
}
xmlHttp.open('HEAD',window.location.href.toString(),false);
xmlHttp.setRequestHeader("Content-Type", "text/html");
xmlHttp.send('');
return xmlHttp.getResponseHeader("Date");
}
var st = srvTime();
var date = new Date(st);
Html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Server date/time</title>
<script language="javascript" src="serverDateTime.js"></script>
</head>
<script language="javascript">
var localTime = new Date();
document.write("Local machine time is: " + localTime + "<br>");
document.write("Server time is: " + date);
</script>
<body>
</body>
</html>
希望它能起作用。来源:webdeveloper