Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 比较开始日期和结束日期的jQuery验证_Javascript_Jquery_Ruby On Rails_Ruby_Ruby On Rails 3 - Fatal编程技术网

Javascript 比较开始日期和结束日期的jQuery验证

Javascript 比较开始日期和结束日期的jQuery验证,javascript,jquery,ruby-on-rails,ruby,ruby-on-rails-3,Javascript,Jquery,Ruby On Rails,Ruby,Ruby On Rails 3,我有两个字段。一个用于个人开始日期,另一个用于个人结束日期。两者都有三个单独的字段,分别表示年、月、日。我想验证个人结束日期>个人开始日期。提前谢谢 html.erb <%= datetime_select :person_start_date %> <select id="person_start_date_1i" name="person[start_date(1i)]"> ... </select> <select id="pers

我有两个字段。一个用于个人开始日期,另一个用于个人结束日期。两者都有三个单独的字段,分别表示年、月、日。我想验证个人结束日期>个人开始日期。提前谢谢

html.erb

<%= datetime_select :person_start_date %>


   <select id="person_start_date_1i" name="person[start_date(1i)]"> ... </select>
   <select id="person_start_date_2i" name="person[start_date(2i)]"> ... </select>
   <select id="person_start_date_3i" name="person[start_date(3i)]"> ... </select>
<%= datetime_select :person_end_date %>


  <select id="person_end_date_1i" name="person[end_date(1i)]"> ... </select>
  <select id="person_end_date_2i" name="person[end_date(2i)]"> ... </select>
  <select id="person_end_date_3i" name="person[end_date(3i)]"> ... </select>

... 
... 
... 
html.erb

<%= datetime_select :person_start_date %>


   <select id="person_start_date_1i" name="person[start_date(1i)]"> ... </select>
   <select id="person_start_date_2i" name="person[start_date(2i)]"> ... </select>
   <select id="person_start_date_3i" name="person[start_date(3i)]"> ... </select>
<%= datetime_select :person_end_date %>


  <select id="person_end_date_1i" name="person[end_date(1i)]"> ... </select>
  <select id="person_end_date_2i" name="person[end_date(2i)]"> ... </select>
  <select id="person_end_date_3i" name="person[end_date(3i)]"> ... </select>

... 
... 
... 

我认为这两个链接中的任何一个都应该回答您的一般问题:

更新:

此链接准确地描述了您的问题,并提供了一个很好的解决方案


如果将年、月和日值作为数字(可以是数字或字符串类型),则可以创建如下日期:

var dStart = new Date(year, --month, day);
请注意,对于日历月份1,javascript月份编号为0(零),因为月份索引为零,因此
--month

您可以直接比较两个日期:

if (dEnd < dStart) {
  // end is before start
}
if(dEnd
这里有一个建议:

var startDate = new Date(
    $('#person_start_date_1i').val(),
    $('#person_start_date_2i').val() - 1,
    $('#person_start_date_3i').val()
);
var endDate = new Date(
    $('#person_end_date_1i').val(),
    $('#person_end_date_2i').val() - 1,
    $('#person_end_date_3i').val()
);
if (endDate > startDate) {
    // do something
}

再简单不过了

var date1 = Date.parse("2012-11-18");
var date2 = Date.parse("2011-11-18");
if (date1 > date2) {
    alert ("Error!");
}
else{
    alert("correct")
}

重要的一点是,由于使用了日期格式,这种比较失败。 大多数情况下,它使用mm-dd-yyyy格式,因为PC具有相同的区域设置,看起来格式正确,但事实并非如此。 为了兼容性,各种语言/平台将日期保留为年月日格式。
因此,最好明确地将日期转换为yyyy-mm-dd格式并进行转换,特别是当您使用dd-mm-yyy(澳大利亚或欧洲格式)时。

告诉我们您尝试了什么?什么类型的值(例如01、1、一月、一月)?哪个选项是哪个(例如,person\u start\u date\u 1i是天、月还是年)?请参见上文,erb代码下方有一个htmlHere,我只能添加jQuery validator add方法进行验证。我可以添加任何警报。因此,我正在搜索名称以验证fro和to字段以及所有提示。您可以从输入字段(选择下拉菜单)中检索月份、日期和年份的值,并在JQuery中构造一个日期对象,然后使用上述链接验证它们。