jquery问题,数字从零开始

AJF*_*DIA 2 javascript jquery parsing numbers date

在我的脚本顶部,我创建了一个今天日期之外的变量:

<?php $today = date('dmy'); ?>
Run Code Online (Sandbox Code Playgroud)

然后我有一个表,每个表行都有一个"nodate"或六位数字的类,这个数字代表一个日期.例如230910(昨天).

我正在尝试编写一些jquery,如果类(六位数)小于今天的日期($ today)作为数字,则隐藏表行.例如,如果230910 <240910

<script type="text/javascript">
    var todaysdate = "<?php echo $today;?>";
    $(document).ready(function() {
        $("#main table tr").each(function() {
            if ($(this).hasClass('nodate')) {
                $(this).css("background", "blue");
                } else {                    
                    var expire = (parseInt($(this).attr('class')));
                    alert (expire);

                    if (expire < todaysdate) {
                    $(this).css("background", "red");
                }
            }
        });

    });
</script>
Run Code Online (Sandbox Code Playgroud)

为了测试,我有它,所以如果表行有一个"nodate"类,那么背景变为蓝色.然后,如果表行日期(六位数字)小于今天的日期,则变为红色.

目前,具有六位数的所有行都变为红色,并且由于某种原因,如果数字以零开头,则类输出不同.

例如

<tr class="<?php $date = "041010";  echo $date; ?>">
Run Code Online (Sandbox Code Playgroud)

输出为16904:S

有人可以帮忙吗?

Guf*_*ffa 6

以零开头的数字被解析为八进制数(基数为8),而不是十进制数(基数为10).

解析数字时指定基数(基数):

parseInt($(this).attr('class'), 10)
Run Code Online (Sandbox Code Playgroud)

此外,除非您在同一个月内只有日期,否则您应该使用基于ISO 8601的日期格式(ymd),例如100924而不是240910.

首先使用日期,您将获得例如250810> 的效果240910.