【问题标题】:Compare dates in JS dont work比较 JS 中的日期不起作用
【发布时间】:2013-01-14 14:25:55
【问题描述】:

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

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

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

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

  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 date compare


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-18
      • 1970-01-01
      相关资源
      最近更新 更多