可以把数据库里的日期取出来转成javascript的Date对象(如果数据较多要按顺序,用二分查找快一点)数组(或者hash表),在生成日历的时候检查该日期是不是在数组(或者hash表)里分别处理就可以了.

解决方案 »

  1.   

    /**
    我不知道javascrip如何获取数据库中的数据啊!请大家多多指教
    */
    A:javascript是客户端脚本,你可以用框架或Ajax去取,
    或者最开始在服务端把数据组织好,再放到客户端作后续处理
      

  2.   

    不一定需要用js去直接读取数据库,显示页面的时候,从数据库中读出结果写成一个js数据或别的都可以。当然用ajax去动态的读取这些信息也是可行的办法
      

  3.   

    目前js无法连接远程数据库。
    可以用ajax异步获取,也可以将生成日历的页面改为动态的和后太挂钩在生成的时候直接带入数据。
      

  4.   

    <script language='JavaScript' type='text/JavaScript'>var fifteenth = new Array('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat');var sixteenth = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);var seventeenth = new Date();var eighteenth = seventeenth.getMonth();var nineteenth = seventeenth.getDay();var first2 = seventeenth.getDate();var second2 = sixteenth[eighteenth];
    if (eighteenth == 1) {  var third2 = seventeenth.getYear();
      if (third2%4 == 0) second2 = 29;}document.write("<table border='0' bgcolor='ffD0F4' cellspacing='1' cellpadding='1'>");document.write('<tr>');
    for (var fourth2=0; fourth2<7; fourth2++) {  document.write("<td width='30' height='30'>");  document.write("<div align='center'>" + fifteenth[fourth2] + "</div>");  document.write('</td>');}document.write('</tr>');var fifth2 = 0;var sixth2 = 1;var fifteenth3 = nineteenth - first2%7 + 1;
    if (fifteenth3 < 0) fifteenth3 += 7;var sixteenth3 = parseInt((fifteenth3 + second2)/7);
    if ((fifteenth3 + second2)%7 != 0) sixteenth3++;
    for (var fourth2=sixteenth3; fourth2>0; fourth2--) {  document.write('<tr>');  
    for (var seventeenth3=7; seventeenth3>0; seventeenth3--) {    document.write('<td>');    
    if (fifth2<fifteenth3 || sixth2>second2) {      document.write("<div align='center'></div>");      fifth2++;    }    
    else {      
    if (sixth2 == first2) document.write("<div align='center'><font color='blue'>[" + sixth2 + "]</font></div>");      
    else document.write("<div align='center'>" + sixth2 + "</div>");      sixth2++;    }    document.write('</td>')  }  document.write('</tr>');}document.write('</table>');
    </script>