0

以下のコードは、2 つの日付が同じ年内にある場合は正常に機能しますが、終了日が翌年にある場合は壊れているようです。誰かが理由について正しい方向に私を向けることができますか?

どちらの変数も、DD/MM/YYYY 形式の日付ピッカーです。

前もって感謝します。

$(document).ready(function() {
    $("#start").change(  function() {   
        var startDate = $('#start').val().replace('/','');
        var endDate = $('#due').val().replace('/','');
        if(startDate > endDate){
           $("#due").val($(this).val());
        }

    });
});
4

4 に答える 4

1

開始日が2012年10月12日のようで、終了日が2013年10月1日である場合は、コードとそれが生成するものを確認してください。

"10/12/2012" -> "10122012”
"10/01/2013" -> "10012013"

2つの文字列を相互に比較し、3番目の位置で最初の文字列が2番目の文字列よりも大きくなります。

日付を比較するには、日付を使用する必要があります。

もっと簡単にしたい場合は、moment.jsを見てください

于 2012-11-26T13:30:47.203 に答える
0

たとえば、1232013 (2013 年 1 月 23 日) と 12232012 (2012 年 12 月 23 日) を比較しています。後者の方が数値は大きくなりますが、より早い日付です。

于 2012-11-26T13:49:29.250 に答える
0

Patrick James McDougle が言ったように、日付を文字列で比較するのはおそらく良い考えではありません。次のように、 Dateオブジェクトを試してください。

$("#start").change(  function() {   
     var startDate = new Date($('#start').val());
     var endDate = new Date($('#due').val());
     if (startDate > endDate){
          $("#due").val($(this).val());
     }
});
于 2012-11-26T13:32:07.707 に答える