Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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 在JS中比较日期不起作用_Javascript_Date_Compare - Fatal编程技术网

Javascript 在JS中比较日期不起作用

Javascript 在JS中比较日期不起作用,javascript,date,compare,Javascript,Date,Compare,我在JS中有这个函数,这很奇怪,因为它可以处理很多日期,但不能处理一个 我有两个输入,使用jquery将第一个复制到第二个,如果第二个是次要的或为null,然后如果我在第一个中放置了另一个较大的日期,则第一个中的第二个日期将更改为相同的日期 但我有一个案例,第一个输入是2013年5月1日,第二个输入是2013年5月31日,如果我将第一个更改为2013年6月1日,第二个应该在同一日期更改,但不要这样做 如果使用firebug,我会测试它和这个函数 obtenerFecha(fIni) >

我在JS中有这个函数,这很奇怪,因为它可以处理很多日期,但不能处理一个

我有两个输入,使用jquery将第一个复制到第二个,如果第二个是次要的或为null,然后如果我在第一个中放置了另一个较大的日期,则第一个中的第二个日期将更改为相同的日期

但我有一个案例,第一个输入是2013年5月1日,第二个输入是2013年5月31日,如果我将第一个更改为2013年6月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]);

谢谢。

Javascript日期中的月份在0-11范围内,而不是1-12范围内,因此您的新日期(2013,5,31)转换为2013,06,01,即2013年5月1日。

您需要从月份中减去1

月份

表示月份的整数值,1月从0开始,12月从11开始

如果您能将源代码“翻译”成英语,这将有助于您更容易理解您正在做的事情。你能编辑你的帖子吗?