【问题标题】:jquery issue with numbers starting wth zero以零开头的数字的jquery问题
【发布时间】:2010-09-24 19:31:48
【问题描述】:

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

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

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

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

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

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

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

例如

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

输出为 16904 :S

谁能帮忙?

【问题讨论】:

    标签: javascript jquery parsing date numbers


    【解决方案1】:

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

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

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

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

    日期在前,你会得到例如250810 > 240910的效果。

    【讨论】:

    【解决方案2】:

    var todaysdate = "&lt;?php echo $today;?&gt;";

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

    expire &lt; todaysdate

    【讨论】:

    猜你喜欢
    • 2016-08-08
    • 1970-01-01
    • 1970-01-01
    • 2019-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-04
    • 2022-12-31
    相关资源
    最近更新 更多