2

在我的网页中,我有一个日期表(我的日期格式是 dd-mm-yyyy)

<tr>
    <td>05-03-2012</td>
    <td name="expiration">09-07-2012</td>
    <td>08-10-2012</td>
 <tr>

我想要的是使用 Jquery 在其值为 > 当前日期时输入红色到期日期。

所以,我想我会使用类似的东西:

<script>
//don't know how to retrieve the expiration date and check if it is after the
//current date 

$('td[name=expiration]').css({"color":"red"});
</script>
4

3 回答 3

3

更喜欢使用类而不是名称,以便您的选择器更有效:

<tr>
    <td>05-03-2012</td>
    <td class="expiration-date">09-07-2012</td>
    <td>08-10-2012</td>
</tr>

var now = new Date;
$('.expiration-date').text(function (i, v) {
    if (now < new Date(v)) {
        $(this).addClass('unexpired');
    }
});

这是 jsFiddle 中的一个示例:http: //jsfiddle.net/qRdNe/

于 2012-07-09T01:35:39.497 回答
2

这不考虑日期时间解析中的任何错误。

$('td[name=expiration]').each(function(){

    var innerText = $(this).text();
    var date = new Date(innerText);
    var today = new Date();    

    if(date > today){
       //Set css here
    }
    else{
       //Set default here
    }

});
于 2012-07-09T01:28:47.900 回答
0

我基本上已经从此处给出的不同位中汇总了一个工作答案,但在需要时进行了更正,一个月的日期从零开始。也许您不想接受这是正确的答案,我只是将所有内容都放在这里以便于参考。

$('.expiration').text(function(i,v){
    var datestr = v.split("-");
    d = new Date(datestr[2],datestr[0]-1,datestr[1],0,0,0,0);
    var now = new Date();        
    if(console)console.log(d);        
    if(d>now )
             {
                $(this).css("color","red");            
             }                

});

http://jsfiddle.net/6zb5W/3/

于 2012-07-09T02:27:30.747 回答