在我的脚本顶部,我已经在今天的日期创建了一个变量:
<?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
任何人都可以帮忙吗?
答案 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; - 您正在将字符串与整数进行比较