Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Problema calendario

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2001
    residenza
    rimini, san marino
    Messaggi
    934

    Problema calendario

    Ciao a tutti.

    Sto facendo un calendario, ma mi sono bloccato:

    codice:
    <?php
    
    // creo la data
    $data=getdate();
    
    $anno = $data[year];
    $mese = $data[mon];
    $giorno = $data[mday];
    $now = $data[mday];
    $wday = $data[weekday];
    $ore = $data[hours];
    $minuti = $data[minutes];
    print ("$giorno, $mese, $wday");
    //creo la tabella
    print("<table border=1>
    			<tr>
                	<td>
                    	Domenica
                    </td>
    
                	<td>
                    	Lunedi
                    </td>
                	<td>
                    	Martedi
                    </td>
                	<td>
                    	Mercoledi
                    </td>
                	<td>
                    	Giovedi
                    </td>
                	<td>
                    	Venerdi
                    </td>
                	<td>
                    	Sabato
                    </td>
                </tr>
                <tr>
    		");
    // conto i giorni
    for ($giorno=1; $giorno<=31 ;$giorno++)
    		{
    
            	if(checkdate($mese,$giorno,$anno))	{
                		$date=("$mese/$giorno/$anno");
                            $data = mktime(0,0,0, $mese, $giorno, $anno);
                            $date = date("w", $data); //estraggo il numero del giorno
    
    		while($date>$a)
                            	{
                                       print("<td></td>");
                                     $a++;
                                     }
    // creo la settimana. quando $date=0 vado a capo. $date=0 rappresenta la domenica
                    if($date=="0")	{
    	              if ($now==$giorno)  {
                                   print("</tr><tr><td bgcolor=#E2E2E2>$giorno,$date</td>");
    	                                                    }
    	              else    {
    	                       print("</tr><tr><td>$giorno,$date</td>");
                                                        }
    	                                }
    
    
                                else		{
                                		if($now==$giorno)	{
    								                            print("<td bgcolor=#E2E2E2>$giorno,$date</td>");
                                                                }
                                                                else
                                                                {
                                                                print("<td >$giorno,$date</td>");
                                                                }
                                		}
    
                		}
                	else	{
                }
            }
    ?>
    Ecco il mio problema sta nel fatto che non riesco a far iniziare il mese nel giusto modo.ecco come inizia questo mese:

    Come si può intuire la prima settimana non mi si allinea bene.

    Suggerimenti?

    Ciao e grazie,
    Ale

  2. #2

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2001
    residenza
    rimini, san marino
    Messaggi
    934
    Si, bè, ma io preferisco capire dove sbaglio che prendere scripts di altri.

    Ale

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2001
    residenza
    rimini, san marino
    Messaggi
    934
    uppete

  5. #5
    <?php

    // creo la data
    $data=getdate();

    $anno = $data[year];
    $mese = $data[mon];
    $giorno = $data[mday];
    $now = $data[mday];
    $wday = $data[weekday];
    $ore = $data[hours];
    $minuti = $data[minutes];
    print ("$giorno, $mese, $wday");
    //creo la tabella
    ?>
    <table border=1>
    <tr>
    <td>Domenica</td>
    <td>Lunedi</td>
    <td>Martedi</td>
    <td>Mercoledi</td>
    <td>Giovedi</td>
    <td>Venerdi</td>
    <td>Sabato</td>
    </tr>
    <tr>
    <?PHP
    // conto i giorni
    $a = 1;
    $numero_giorno7 = date("w", $data);
    while($numero_giorno7 > $a){
    print("<td>---</td>");
    $a++;
    }
    for ($giorno=1; $giorno<=31 ;$giorno++){
    if(checkdate($mese,$giorno,$anno)) {
    $date=("$mese/$giorno/$anno");
    $data = mktime(0,0,0, $mese, $giorno, $anno);
    $numero_giorno7 = date("w", $data); //estraggo il numero del giorno
    // creo la settimana. quando $numero_giorno7=0 vado a capo. $numero_giorno7=0 rappresenta la domenica
    if($numero_giorno7 == 0 ) {
    if ($now==$giorno){print("</tr><tr><td bgcolor=#E2E2E2>$giorno,$numero_giorno7</td>");
    }else{print("</tr><tr><td>$giorno,$numero_giorno7</td>");}
    }else{
    if($now==$giorno){print("<td bgcolor=#E2E2E2>$giorno,$numero_giorno7</td>");
    }else{print("<td >$giorno,$numero_giorno7</td>");}
    }
    }else{echo("not valid date");}
    }
    ?>

  6. #6
    Utente di HTML.it L'avatar di polinet
    Registrato dal
    Nov 2000
    Messaggi
    993
    Questo script genera un calendario, se vuoi passagli tu mese e anno.

    <?
    $day_number = 1;
    $month = 1;
    $year = 2006;
    $time = mktime(0,0,0, $month, 1, $year);
    // genera l'array con le informazioni
    $date = getdate($time);
    // giorni totali per il mese e anno
    $day_total = cal_days_in_month(CAL_GREGORIAN, $date['mon'], $date['year']);
    //stampa mese e anno in oggetto
    //in italiano come intestazione
    setlocale(LC_TIME,"it_IT");
    $mese_anno = strftime('%B',$date[0]). " " .$year;
    $mese_anno = (ucfirst($mese_anno));
    echo "<table><tr><td colspan=\"7\">$mese_anno</td></tr>\n";
    // stampa le abbreviazioni dei giorni della settimana
    echo "<tr><td align=center>Do</td><td align=center>Lu</td><td align=center>Ma</td><td align=center>Me</td> <td align=center>Gi</td><td align=center>Ve</td><td align=center>Sa</td></tr>\n";
    for ($i = 0; $i < 6; $i++)
    {
    echo '<tr>';
    for ($j = 1; $j <= 7; $j++)
    {
    $day_number = $j + $i*7 - $date['wday'];
    //stampa la cella con il giorno
    echo '<td width=79 align=center bgcolor=#eeeeee style=font-face:verdana size=1';
    if ($day_number > 0 AND $day_number <= $day_total)
    {
    $day_number = sprintf('%02d', $day_number);
    echo " style=\"border: 1px solid #c0c0c0;\" ";
    echo ">$day_number";
    }
    else
    {
    //stampa una cella vuota se non esiste il giorno
    echo '> ';
    }
    echo '</td>';
    }
    echo "</tr>\n";
    if ($day_number >= $day_total AND $i != 6);
    }
    echo "</table>\n";
    ?>
    ¿Hasta la pasta?

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.