jquery问题,数字从零开始

时间:2010-09-24 19:31:49

标签: javascript jquery parsing date numbers

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

<?php $today = date('dmy'); ?>

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

我正在尝试编写一些jquery,如果类(六位数)小于今天的日期($ today)作为数字,则隐藏表行。例如,如果230910&lt; 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>

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

目前所有六位数的行都变为红色,出于某种原因,如果数字以零开头,那么该类的输出会有所不同。

例如

<tr class="<?php $date = "041010";  echo $date; ?>">

输出为16904:S

任何人都可以帮忙吗?

2 个答案:

答案 0 :(得分:6)

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

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

parseInt($(this).attr('class'), 10)

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

首先使用日期,您会获得例如250810&gt;的效果240910

答案 1 :(得分:0)

var todaysdate = "<?php echo $today;?>";&lt; ---这是一个字符串

var expire = (parseInt($(this).attr('class')));
alert (expire);

expire < todaysdate&lt; - 您正在将字符串与整数进行比较