javascript中的日期和时间验证

时间:2016-07-25 09:13:19

标签: javascript java jquery validation datetime

我正在尝试进行日期验证。

我的要求是用户不应该选择过去的日期和时间。它工作正常,直到我更改本地PC的日期和时间。

我将用户选择的日期和时间与javascript的new Date()对象进行比较,但发现它从本地计算机的日期获取日期。因此,如果用户更改其本地计算机日期(将其设置为过去日期),那么他将能够选择过去的日期。

任何服务器端(Java)解决方案也是可以接受的。尝试一下,但Java的日期对象(java.util.date)也从本地机器的日期提取日期,所以没有运气。

感谢。

1 个答案:

答案 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