2010-06-09 37 views
35

Sayfamdaki Tarihler'i temsil eden iki Dize alanı var ve bu iki alanı < ikinci tarihimin ilk randevum olup olmadığını öğrenmek istiyorum. Bunu nasıl yapabilirim?jQuery ile iki tarih değeri nasıl karşılaştırılır

<tr> 
    <td align="right">First Date: </td> 
    <td align="left"> <html:text name="addPublicationForm" styleId="firstDate" property="firstDate" maxlength="10"/></td> 
</tr> 
<tr> 
    <td align="right">Second Date: </td> 
    <td align="left"> <html:text name="addPublicationForm" styleId="secondDate" property="secondDate" maxlength="10"/></td> 
</tr> 

cevap

2

sen (< operatörü kullanarak) onlara kolay karşılaştıran bir Date nesnesine bu dizeleri ayrıştırmak koyduğumuzda. Tarihlerin ayrıştırılması biçime bağlı olacaktır. Bu görevi basitleştiren Datejs'a bakabilirsiniz.

+0

% 100 doğru yanıt için jquery – Mercer

+0

+ 1 doğrulayıcıyı kullanmak istiyorum. @downvote, lütfen burada neyin yanlış olduğunu aydınlatın. – jAndy

+0

@Mercer, validato hakkında ne konuşuyorsunuz? Bazı eklentilere başvuruyor musunuz? –

23

ayrıca özellikle datepicker yılında, jQuery ui kullanıyorsanız, size daha sonra standart < ve >

+1

Koddan döndürülen "Date" nesnesinin "Date.parse" kullanılarak milisaniye dönüştürülmemesi gerekir (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/ karşılaştırma yapmadan önce ayrıştır? redirectlocale = tr-US & redirectslug =% 2FReferans% 2FGlobal_Objects% 2FDate% 2Fparse)? –

+0

Tarih kurucuları ile tarih dizelerini ayrıştırma (ve Date.parse, bunlar eşdeğerdir) tarayıcı farklılıkları ve tutarsızlıklar nedeniyle şiddetle tavsiye edilmez: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Tarih # Two_digit_years_map_to_1900 _-_ 1999 –

48
var startDt=document.getElementById("startDateId").value; 
var endDt=document.getElementById("endDateId").value; 

if((new Date(startDt).getTime() > new Date(endDt).getTime())) 
{ 
    ---------------------------------- 
} 
6
var startDate = $('#start_date').val().replace('-','/'); 
var endDate = $('#end_date').val().replace('-','/'); 

if(startDate > endDate){ 
    // do your stuff here... 
} 
+0

Madenin neden başarısız olduğunu biliyor musunuz? http://stackoverflow.com/questions/32015131/why-does-the-each-function-in-jquery-not-iterate – Si8

+1

ikinci "-" değiştirilmez, deneyin/-/g. – Bhimbim

+0

merhaba, bu işlev işe yarayacak ancak yukarıda belirtildiği gibi sadece bir hipen değiştirilecek ve böylece var startDate = $ ('# start_date') val() değiştirin ('-', '/'). yerine ('-', '/'); var endDate = $ ('# end_date') val() yerine ('-', '/') değiştirin ('-', '/'); if (startDate> endDate) { // işlerinizi burada yapın ... } –

İlgili konular