0

私はJSでこの関数を持っていますが、多くの日付で機能しますが、1つでは機能しないため、非常に奇妙です..

私は2つの入力を持っており、jqueryを使用すると、2番目がマイナーまたはnullの場合は1番目を2番目にコピーし、最初に別の日付を入れると、2番目の日付は最初と同じに変わります。

しかし、最初の入力に 01/05/2013 があり、2 番目の入力に 31/05/2013 がある場合が 1 つあります。それ..

そして、firebugの場合、私はそれとこの機能をテストします

  obtenerFecha(fIni) > obtenerFecha(fFin) // obtenerFecha(01/06/2013) > obtenerFecha(31/05/2013)

false を返し、それは true です!

誰かが私を助けることができれば、これが私のコードです..

    function copiarFecha(inicio,fin) {
        var fIni = $("#" + inicio).val();
        var fFin = $("#" + fin).val();
        if ((fFin == "") || obtenerFecha(fIni) > obtenerFecha(fFin)) {
            $("#" + fin).attr('value', fIni);
        }
        return true;
    }


    function obtenerFecha(strFecha) {
        var df = strFecha.split("/");
        if (isNaN(df[0]) || isNaN(df[1]) || isNaN(df[2]) || (df[0] > 31) || (df[1] > 12)) {
            cargaMensaje("KO", "La fecha no es correcta,revísela.");
            return false;
        }
        return new Date(df[2], df[1], df[0]);

ありがとう。

4

2 に答える 2

1

Javascript Date の月は 1 ~ 12 ではなく 0 ~ 11 の範囲にあるため、新しい Date(2013, 5 ,31) は 2013,06,01 に変換され、2013 年 5 月 1 日になります。

于 2013-01-14T14:34:13.153 に答える
1

月から 1 を引く必要があります。http://jsbin.com/eqozic/2/

1 月の 0 から 12 月の 11 までの、月を表す整数値。

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date

于 2013-01-14T14:34:50.707 に答える