我正在尝试进行日期验证。
我的要求是用户不应该选择过去的日期和时间。它工作正常,直到我更改本地PC的日期和时间。
我将用户选择的日期和时间与javascript的new Date()
对象进行比较,但发现它从本地计算机的日期获取日期。因此,如果用户更改其本地计算机日期(将其设置为过去日期),那么他将能够选择过去的日期。
任何服务器端(Java)解决方案也是可以接受的。尝试一下,但Java的日期对象(java.util.date)也从本地机器的日期提取日期,所以没有运气。
感谢。
答案 0 :(得分:1)
为此你应该从服务器获得日期和时间。
<强> 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