0

我在 JS 中有这个函数,它很奇怪,因为它可以与许多日期一起工作,但不能与一个..

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

但我有一个案例,第一个输入有 01/05/2013,第二个输入有 31/05/2013,如果我将第一个更改为 01/06/2013,第二个应该在同一日期更改,但不要这样做它..

如果我用萤火虫测试它和这个功能

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

返回假,它是真的!

如果有人可以帮助我,这是我的代码..

    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 中的月份范围是 0-11 而不是 1-12,因此您的新 Date(2013, 5 ,31) 转换为 2013,06,01,即 2013 年 5 月 1 日。

于 2013-01-14T14:34:13.153 回答
1

您需要从月份中减去 1。http://jsbin.com/eqozic/2/

表示月份的整数值,从 0 开始表示一月到 11 表示十二月。

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

于 2013-01-14T14:34:50.707 回答