Semplice calendario

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Tempo fa ho trovato in rete un ciclo for annidato per creare un calendario

Vi posto il risultato semplificato ( nei miei script uso ajax per cambiare la data ) di ciò che ne è venuto fuori

PHP:
<!-- Un pò di css per personalizzare il calendario -->
<style type="text/css">
    table.tabcal{
        margin:auto;
        width:210px;
        text-align: center;
        font-size:13px;
        color:#000;
        letter-spacing: 0;
        border:2px solid #980000;
        border-radius: 4px;
    }

    table.tabcal td {
        padding: 3px 5px 3px 5px;
        background-color: #E9E9E9;
    }
    table.tabcal td.daycolor {
        font-weight: bold;
        border:1px solid #980000;
        border-radius: 4px;
    }
    table.tabcal td.empty {
        background-color: #fff;
    }
    table.tabcal tr.bold {
        font-weight: bold;
    }
    table.tabcal td.red {
        background-color: #980000;
        color:#FFF;
    }
    table.tabcal td a {
        text-decoration: none;
        color:#FFF;
    }
</style>

<?php
// verifichiamo se è stato scelto un altra data
if (isset($_GET['m']) && isset($_GET['y'])) {
    // qui i controlli sarebbero da aumentare 
    if (is_numeric($_GET['m']) && is_numeric($_GET['y'])) {
        echo calendario($_GET['m'], $_GET['y']);
    } else {
        echo calendario(date('m'), date('Y'));
    }
} else {
    //altrimenti impostiamo la data corrente
    echo calendario(date('m'), date('Y'));
}

// funzione che restituisce il nome del mese indicato in italiano
function nome_mese($m) {
    $mesi = array(1, 'Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio',
        'Giugno', 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', 'Dicembre');
    return $mesi[$m];
}

// Parametri obbligatori : mese e anno
function calendario($month, $year) {
    $time_primo_del_mese = mktime(0, 0, 0, $month, 1, $year);
    $primo_del_mese = date('w', $time_primo_del_mese);

    $giorni_nel_mese = cal_days_in_month(CAL_GREGORIAN, $month, $year);

    echo "<table class='tabcal'>";
    echo "<tr class='bold'>";
    echo "<td class='red' colspan='7'>" . nome_mese((int) $month) . " " . $year . "</td>";
    echo "</tr>";
    echo "<tr class='bold'>";
    echo "<td>D</td>";
    echo "<td>L</td>";
    echo "<td>M</td>";
    echo "<td>M</td>";
    echo "<td>G</td>";
    echo "<td>V</td>";
    echo "<td>S</td>";
    echo "</tr>\n";
    // questo ciclo annidato l'ho trovato in rete tempo fa ma non ricordo dove
    for ($i = 0; $i < 6; $i++) {
        echo "<tr>";
        for ($x = 1; $x <= 7; $x++) {
            $y = $x + ($i * 7) - $primo_del_mese;
            echo "<td";
            if ($y > 0 && $y <= $giorni_nel_mese) {
                if ($y == date('d') && $month == date('m') && $year == date('Y')) {
                    echo " class='daycolor' ";
                }
                echo ">$y";
            } else {
                echo " class='empty'>&nbsp;";
            }
            echo "</td>";
        }
        echo "</tr>";
        if ($y >= $giorni_nel_mese && $i < 6)
            break;
    }
    // creiamo un piccolo menu di navigazione
    $before = explode('-', date('m-Y', mktime(0, 0, 0, $month - 1, 1, $year)));
    $next = explode('-', date('m-Y', mktime(0, 0, 0, $month + 1, 1, $year)));
    $prossimo = nome_mese((int) $next[0]);
    $precedente = nome_mese((int) $before[0]);

    echo "<tr>";
    echo "<td class='red' colspan='7'>";
    echo " <a href='" . $_SERVER['PHP_SELF'] . "?m=" . $before[0] . "&y=" . $before[1] . "'>$precedente</a>";
    echo " << &nbsp; >> <a href='" . $_SERVER['PHP_SELF'] . "?m=" . $next[0] . "&y=" . $next[1] . "'>$prossimo</a>";
    echo "</td>";
    echo "</tr>";
    echo "</table>";
}
?>

E' sufficiente incollare ilcodice in una vostra pagina e lavorarci un attimo per personalizzarlo.
 
Ultima modifica:
Discussioni simili
Autore Titolo Forum Risposte Data
A Web master per semplice sito web Offerte e Richieste di Lavoro e/o Collaborazione 2
M Semplice visualizzatore di immagini [risolto con plugin wp] PHP 7
L [PHP] cambiare gli if in un url semplice PHP 1
L [PHP] convertire gli url ad forma semplice PHP 3
G Caricare una semplice Jpg con il PHP PHP 1
Federico.Marcelo qual è il modo più semplice per creare file GIF di alta qualità? Webdesign e Grafica 4
V Semplice barra di ricerca con filtro categorie prodotti E-Commerce 0
Z Semplice area privata in php PHP 6
M Un semplice saluto Presentati al Forum 1
T Visualizzare un Xml su un sito in modo semplice XML 1
X [Photoshop] Cercasi strumento per ottenere un semplice effetto. Photoshop 6
J [PHP] sviluppare una semplice calcolatrice PHP 1
booklisa [PHP] Domanda semplice (apparantemente) PHP 4
R [PHP] Semplice form PHP 4
G [CERCO][Retribuito] Programmatore Windows per un semplice software Offerte e Richieste di Lavoro e/o Collaborazione 0
MarcoGrazia Costruire una semplice chat in PHP non è affatto semplice. PHP 3
G aiuto per semplice menu onclick HTML e CSS 6
T Problema Semplice Script Javascript 1
Mr. Alex D. Creazione semplice autorisponditore con redirect PHP 1
M Casella di ricerca completa, invece di semplice ricerca tra tag HTML e CSS 0
A Semplice applicazione con le facebook api PHP 1
Pi3tro [Richiesta]Semplice form PHP 6
R galleria immagini semplice a schermo intero jQuery 1
C Creare semplice timer in Visual Basic Visual Basic 0
Trapano Galleria immagini semplice PHP 5
S problema con ajax semplice login script Javascript 8
L [Java] Consigli progettuali per una semplice applicazione Java 6
Trapano query semplice? PHP 21
M Semplice pagina per inserire/leggere dati su database PHP 5
E semplice ciclo if!??!?!? :dipser: MS Access 0
L login semplice con array PHP 10
L Semplice giochino javascript Javascript 20
N Menu verticale semplice stile Yahoo WordPress 2
A una guida semplice in php PHP 2
L guida semplice per imparare jquery jQuery 5
A problema con un semplice form per un loggin in php PHP 2
D Redirect: come mai non funziona un semplice redirect? Apache 0
N Semplice timer Snippet PHP 0
P inizio con il php ... semplice aiuto!! PHP 12
L Semplice esercizio funzioni JavaScript Javascript 5
borgo italia phishing o malware o semplice truffa? Discussioni Varie 0
P Galleria immagini semplice Javascript 5
Web Designer Semplice Tutorial Photoshop Effetto Fantasma Photoshop 1
ste80 Problemuccio con semplice guestbook PHP 4
S semplice query che non funziona :( PHP 3
S semplice link che però non compare dentro ad un DIV HTML e CSS 3
L aiuto per questa semplice regex PHP 5
S Semplice domanda con Javascript Javascript 3
M Semplice sito php/mysql...è veramente semplice ? PHP 5
neo996sps [codeingniter]: realizzare un semplice menu PHP 1

Discussioni simili