AngularJS比较日期错误

时间:2017-06-05 09:32:51

标签: javascript angularjs class date if-statement

我刚写了这段代码。 它应该标记其日期列过去的行。

这是代码:

import javax.naming.*;
import javax.naming.ldap.*;
import javax.naming.directory.*;

public class Ldap
{
    public static void main(String[]args)
    {
        Hashtable<String, String> environment = new Hashtable<String, String>();

        environment.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
        environment.put(Context.PROVIDER_URL, "ldap://<hostname>:389");
        environment.put(Context.SECURITY_AUTHENTICATION, "simple");
        environment.put(Context.SECURITY_PRINCIPAL, "<Login DN>");
        environment.put(Context.SECURITY_CREDENTIALS, "<password>");

        try 
        {
            DirContext context = new InitialDirContext(environment);
            System.out.println("Connected..");
            System.out.println(context.getEnvironment());
            context.close();
        } 
        catch (AuthenticationNotSupportedException exception) 
        {
            System.out.println("The authentication is not supported by the server");
        }

        catch (AuthenticationException exception)
        {
            System.out.println("Incorrect password or username");
        }

        catch (NamingException exception)
        {
            System.out.println("Error when trying to create the context");
        }
    }
}

我的应用有:

        <tr ng-repeat="row in records | orderBy: sortType : sortReverse" ng-class="{past_date:(date | date:'y M d') > (row.oddate | date:'y M d')}">
            <td>{{ $index +1 }}</td>
            <td>{{row.pname + " " + row.sname}}</td>
            <td>{{row.areaname}}</td>
            <td>{{row.oddate}}</td>
            <td>{{row.odtime}}</td>
            <td>{{row.cnt}}</td>
        </tr>

每件事情都很好(过去的行被标记了)但是其他一些行也被标记了! (2017年6月5日之前标记 - 好,06/06/2017 - 08/06/2017未标记 - 好,11/06 / 2017-29 / 06/2017标记 - 问题!,02/07/2017及以上没有标记 - 好)。

我检查并且所有日期都很好。

FIDDLE

可能是什么问题?

谢谢!

1 个答案:

答案 0 :(得分:2)

问题发生是因为字符串比较“5”&gt; “11”

您将日期投放到y M d,因此“2017 5 1”将被评估为大于“2017 11 1”

解决方案:使用零填充格式yMMdd