从数据库中取出类型为String的变量,形式为YYYY-MM-DD
在网页上提取出来,想用JS实现与当前时间比较,如果过期则所在单元格背景变色,求代码,不求思路!!!
高手贴代码

解决方案 »

  1.   


    <script>
    function cvtDate(s){
    var a = s.split("-");
    var y = parseInt(a[0], 10);
    var m = parseInt(a[1], 10);
    var d = parseInt(a[2], 10);
    return new Date(y, m-1, d);
    }
    window.onload=function(){
    var today = new Date();
    var tb = document.getElementById("tb");
    for(var i=0;i<tb.rows.length;i++){
    var td = tb.rows[i].cells[0];
    var dt = cvtDate(td.innerHTML);
    if(dt<=today) td.style.backgroundColor="red";
    }
    }
    </script><table id="tb">
    <tr><td>2010-04-01</td></tr>
    <tr><td>2010-05-01</td></tr>
    <tr><td>2010-06-23</td></tr>
    <tr><td>2010-07-01</td></tr>
    </table>
      

  2.   

    求代码,不求思路!!!......似乎你的思路都有问题了.....数据库中取的时间,用js比较,问题是js取客户端的时间,你怎么知道客户端的时间是否正确?不说客户自己的时间设置错了,就是跨时区的访问,程序都存在漏洞了
      

  3.   

    引用楼上的代码,做以下的修改:
       <script>
    window.onload=function(){
    var today = new Date();
    var tb = document.getElementById("tb");
    for(var i=0;i<tb.rows.length;i++)
    {
    var td = tb.rows[i].cells[0];
    var dt = new Date(td.innerText.replace(/-/g,'\/'));
    if(dt.getTime()<=today.getTime()) 
    td.style.backgroundColor="red";
    }
    }
    </script>
    <table id="tb">
        <tr><td>2010-04-01</td></tr>
        <tr><td>2010-05-01</td></tr>
        <tr><td>2010-06-23</td></tr>
        <tr><td>2010-07-01</td></tr>
    </table>
      

  4.   

    <script type="text/javascript">
      function test(){
        var today = new Date();
        var tab = document.getElementById("tab");
        var td;
        var timeStr="";
        var times;
        var myDate;
        for(var i=0;i<tab.rows.length;i++){
             td = tab.rows[i].cells[0];
             timeStr=td.innerHTML;
             times=timeStr.split("-");
            myDate=new Date();
            myDate.setFullYear(times[0],times[1],times[2]);
            if (myDate<today)
        {
           td.style.backgroundColor="red";
        }
        }
      }
    </script>
    <table id="tab">
        <tr><td>2010-6-1</td></tr>
        <tr><td>2010-6-10</td></tr>
        <tr><td>2010-6-20</td></tr>
        <tr><td>2010-6-28</td></tr>
    </table>
      

  5.   

      <script>
    window.onload=function(){
    var today = +new Date,tds = document.getElementByTagName("td"),i=tds.length;
    while(i--)
    {
    if(+new Date(tds[i].innerHTML)<today)  
    td.style.backgroundColor="red";
    }
    }
    </script>
    <table id="tb">
      <tr><td>2010-04-01</td></tr>
      <tr><td>2010-05-01</td></tr>
      <tr><td>2010-06-23</td></tr>
      <tr><td>2010-07-01</td></tr>
    </table>
      

  6.   

    上面有一点写错,應是
    <script>
    window.onload=function(){
    var today = +new Date,tds = document.getElementsByTagName("td"),i=tds.length;
    while(i--)
    {
    if(+new Date(tds[i].innerHTML)<today)   
    td.style.backgroundColor="red";
    }
    }
    </script>
    <table>
      <tr><td>2010-04-01</td></tr>
      <tr><td>2010-05-01</td></tr>
      <tr><td>2010-06-23</td></tr>
      <tr><td>2010-07-01</td></tr>
    </table>另外, server時間問題不關於client的javascript
      

  7.   

    <script>
    function cvtDate(s){
        var a = s.split("-");
        var y = parseInt(a[0], 10);
        var m = parseInt(a[1], 10);
        var d = parseInt(a[2], 10);
        return new Date(y, m-1, d);
    }
    window.onload=function(){
        var today = new Date();
        var tb = document.getElementById("tb");
        for(var i=0;i<tb.rows.length;i++){
            var td = tb.rows[i].cells[0];
            var dt = cvtDate(td.innerHTML);
            if(dt<=today) td.style.backgroundColor="red";
        }
    }
    </script><table id="tb">
        <tr><td>2010-04-01</td></tr>
        <tr><td>2010-05-01</td></tr>
        <tr><td>2010-06-23</td></tr>
        <tr><td>2010-07-01</td></tr>
    </table>