Jquery 如何通过javascript验证datetime字段输入?

Jquery 如何通过javascript验证datetime字段输入?,jquery,javascript,Jquery,Javascript,我有一个HTML页面,有几个字段,其中一个是使用jquery插件选择DateTime,它允许用户选择日期时间,如:2011-06-05 07:10或2011-03-05 11:10等。我的问题是如何在将此字段值发布到服务器之前验证它。我想使用javascript确保字段值仅为此格式的日期时间,而不是像“2231”或“afaf”这样的无效值您也必须在服务器上进行验证 在客户端上测试这样的日期字符串的最简单方法是这样使用date.parse(除了使用date parse之外,我不会测试其他格式。如果

我有一个HTML页面,有几个字段,其中一个是使用jquery插件选择DateTime,它允许用户选择日期时间,如:
2011-06-05 07:10
2011-03-05 11:10
等。我的问题是如何在将此字段值发布到服务器之前验证它。我想使用javascript确保字段值仅为此格式的日期时间,而不是像
“2231”
“afaf”这样的无效值

您也必须在服务器上进行验证

在客户端上测试这样的日期字符串的最简单方法是这样使用date.parse(除了使用date parse之外,我不会测试其他格式。如果用户输入其他格式,您也需要测试)


如果您使用小部件创建日期,这当然是完全没有必要的。

如果用户想要篡改他发送的数据,那么他可以绕过jQuery插件以及客户端上用于验证的任何附加代码。那么,在客户机上编写额外的代码进行验证是没有意义的

如果用户不想篡改他发送的数据,那么jQuery插件本身就应该确保适当的格式。那么,在客户机上编写额外的代码进行验证是没有意义的


仅在服务器上验证此字段。

在客户端上也进行验证,以阻止真正的用户浪费服务器回合trip@mplungjan是的,作为可用性增强。但对于提供小部件输入数据的jQuery插件,情况并非如此。在这种情况下,小部件应该防止用户意外输入无效信息。奥斯瓦尔德,啊,错过了这一部分。对如果用户设法在小部件中输入垃圾,那么它肯定是恶意的,无法在客户端上进行测试。至少我的第一条评论也是在服务器上测试:)
var DT = Date.parse(DateTime.replace("-","/","g"));
if (isNaN(DT)) {
  alert('Invalid date');
  return false;
}
var testDate = new Date(DT);
var parts = DateTime.split(" ")[0].split("-");
if (testDate.getFullYear() != parseInt(parts[0]) ||
    testDate.getMonth() != parseInt(parts[1]-1) ||
    testDate.getDate() != parseInt(parts[2])) {
  alert('Invalid date');
  return false;
}