Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    aiuto per un calendario dinamico

    Ciao a tutti! Sto utilizzando questo script per la realizzazione di un calendario dinamico perpetuo. L'unico problema è che quando il 1 giorno del mese capita di domenica, lo script me lo sposta al lunedì precedente (come potete vedere qui ).

    Ho provato a guardare il codice ma non capisco dov'è il problema. Spero che qualcuno mi possa aiutare!
    Codice PHP:
    $giorno = Array("L","M","M","G","V","S","D");
    $nomemese = Array("Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno""Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre");

    $aa=$_REQUEST['aa'];
    if (
    $aa==""$aa=date("Y");
    $mm=$_REQUEST['mm'];
    if (
    $mm==""$mm=date("n");

    $anno=$aa$mese=$mm;
       if (
    $mese==1$back="aa=".($anno-1)."&mm=12";     
       else 
    $back="aa=".$anno."&mm=".($mese-1);
       if (
    $mese==12$next="aa=".($anno+1)."&mm=1";     
       else 
    $next="aa=".$anno."&mm=".($mese+1);

       print 
    "     <div align='center'>";
       print 
    "<a href=\"?".$back."\">&laquo;</a>  ";
       print 
    "[b]".$nomemese[$mm-1]." ".$aa."[/b]  ";
       print 
    "<a href=\"?".$next."\">&raquo;</a>";
       print 
    "     </div>";

    $n_date $i.$mm.$Y;

    print  
    "<table align=\"center\">";
    // ciclo per i giorni della settimana
    print "  <tr>";
    for (
    $i=0;$i<7;$i++){
       print 
    "    <th>".$giorno[$i]."</th>";
    }
    print 
    "  </tr>";

    $primo=mktime(0,0,0,$mm,1,$aa); //calcolo il primo giorno del mese
    $delta=date("w",$primo)-1;

    print 
    "  <tr>\n";
    for (
    $i=0;$i<$delta;$i++){
       print 
    "    <td></td>";
    }

    for (
    $i=1;$i<=date("t",$primo);$i++){

      if ((
    $i+$delta)%7==1) print "  <tr>"//inizio riga
      
      
     
        
    if (($i==date("d"))&&($mm==date("n"))&&($aa==date("Y"))) {
        
        
        
          print 
    "    <td style='border:1px solid #f00'><a href=\"result_cal.php?d=$i&n=$mm&y=$aa\">".$i."</a></td>";
        } else print 
    "    <td><a href=\"result_cal.php?d=$i&n=$mm&y=$aa\">".$i."</a></td>";
     
      if ((
    $i+$delta)%7==0) print "  </tr>"//chiusura riga
    }
    print  
    "</table>\n"

  2. #2

    Re: aiuto per un calendario dinamico

    Originariamente inviato da elysaweb
    Ciao a tutti! Sto utilizzando questo script per la realizzazione di un calendario dinamico perpetuo. L'unico problema è che quando il 1 giorno del mese capita di domenica, lo script me lo sposta al lunedì precedente (come potete vedere qui ).

    Ho provato a guardare il codice ma non capisco dov'è il problema. Spero che qualcuno mi possa aiutare!

    Codice PHP:
    $giorno = Array("L","M","M","G","V","S","D");
    $nomemese = Array("Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno""Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre");

    $aa=$_REQUEST['aa'];
    if (
    $aa==""$aa=date("Y");
    $mm=$_REQUEST['mm'];
    if (
    $mm==""$mm=date("n");

    $anno=$aa$mese=$mm;
       if (
    $mese==1$back="aa=".($anno-1)."&mm=12";     
       else 
    $back="aa=".$anno."&mm=".($mese-1);
       if (
    $mese==12$next="aa=".($anno+1)."&mm=1";     
       else 
    $next="aa=".$anno."&mm=".($mese+1);

       print 
    "     <div align='center'>";
       print 
    "<a href=\"?".$back."\">&laquo;</a>  ";
       print 
    "[b]".$nomemese[$mm-1]." ".$aa."[/b]  ";
       print 
    "<a href=\"?".$next."\">&raquo;</a>";
       print 
    "     </div>";

    $n_date $i.$mm.$Y;

    print  
    "<table align=\"center\">";
    // ciclo per i giorni della settimana
    print "  <tr>";
    for (
    $i=0;$i<7;$i++){
       print 
    "    <th>".$giorno[$i]."</th>";
    }
    print 
    "  </tr>";

    $primo=mktime(0,0,0,$mm,1,$aa); //calcolo il primo giorno del mese
    $delta=date("w",$primo)-1;

    /*===============================================*/
    if($delta == -1$delta  6;  // <-- Aggiungi Questa riga qui
    /*===============================================*/

    print "  <tr>\n";
    for (
    $i=0;$i<$delta;$i++){
       print 
    "    <td></td>";
    }

    for (
    $i=1;$i<=date("t",$primo);$i++){

      if ((
    $i+$delta)%7==1) print "  <tr>"//inizio riga
      
      
     
        
    if (($i==date("d"))&&($mm==date("n"))&&($aa==date("Y"))) {
        
        
        
          print 
    "    <td style='border:1px solid #f00'><a href=\"result_cal.php?d=$i&n=$mm&y=$aa\">".$i."</a></td>";
        } else print 
    "    <td><a href=\"result_cal.php?d=$i&n=$mm&y=$aa\">".$i."</a></td>";
     
      if ((
    $i+$delta)%7==0) print "  </tr>"//chiusura riga
    }
    print  
    "</table>\n"
    Basta poco che ce vo'..

  3. #3
    ciao.. grazie avevi ragione, avevo fatto delle prove, ma non avevo capito che il problema era lì. grazie mille!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.