2017-02-16 82 views

回答

0

我同意使用moment.js。但是,如果你出于某种原因不想或不能,这里是你的小提琴的解决方案。

http://jsfiddle.net/jonofan/YdeY8/483/

$('.datepicker').on('change', function() { 
     var fromParts = $('#CheckInDate').val().split('-');  
     var toParts = $('#CheckOutDate').val().split('-'); 

     //please put attention to the month (parts[0]), Javascript counts months from 0: 
     // January - 0, February - 1, etc 

     var fromDate = new Date(fromParts[2],fromParts[0]-1,fromParts[1]); 
     var toDate = new Date(toParts[2],toParts[0]-1,toParts[1]); 

     if (fromDate >= toDate) { 
     alert('Check in must be before check out!') 
     } 
    }) 

必须拆分你的约会对象成部分原因是因为的JavaScript Date()对象只分析特定的格式,你不能自定义格式。这就是为什么使用像moment.js这样的库很好,因为它可以非常灵活地处理所有事情。

根据经验,如果要更改日期格式,使用字符串拆分来分析日期会变得有问题。假设在6个月内想要将日期从dd-mm-yy更改为dd/mm/yy;你将不得不去更新你的字符串拆分代码。

+0

感谢您的回复。有没有办法把checkInDate.datepicker和checkOutDate.datepicker函数放在.datepicker函数中。因为我需要通过类名访问控制字段,而不是通过控制名。 – Ammu

+0

@Ammu你当然可以通过'$('。datepicker')访问它们,但是你需要知道哪些是签入,哪些是签出。为此,我认为你可能仍然需要IDS。感谢您是否可以'标记为答案',如果这是有用的。 – jonofan

0

你可以使用momentJS来验证,如果你日期早于或等于。
一个简单的代码,如:

if(moment(fistDate).isBefore(moment(secondDate)) || moment(firstDate).isSame(moment(secondDate)) { 

} 

在这个例子中,在第一次约会代表你的DateTimePicker的价值,第二个日期是你希望它是,因为你从来没有告诉它是什么什么的。

+0

感谢您的回复。我的编码工作正常。是否有任何方法将checkInDate.datepicker和checkOutDate.datepicker函数放入.datepicker函数中。因为我需要通过类名访问控制字段,而不是通过控制名。 – Ammu