Menù

Demo

Marzo

Scorri la pagina per far apparire il calendario

SDLMMGVSDLMMGVSDLMMGVSDLMMGVSDL
12345678910111213141516171819202122232425262728293031
  • aggiornato il 31/01/2025 15:02:19

Top 5

Calendario orizzontale

Creiamo un calendario in orizzontale con due cicli php. Il calendario è stato posizionato in cima alla pagina grazie alla proprietà position dei css. Formattazione css

<style type="text/css">
    table.cal_oriz{
        text-align:center;
        border-collapse: collapse;
        position: fixed;
        top:0;
        left:0;
        background-color: white;
        width: 100%;
        border:2px solid #053E85;
    }
    table.cal_oriz tr {
        border-bottom:1px solid #053E85;
    }
    table.cal_oriz td {
        padding:5px;
    }
    table.cal_oriz td.dom{
        background-color:#053E85;
        color: #FFF;
    }
    table.cal_oriz td.sab{
        background-color: #CBCBCB;
    }
    table.cal_oriz td.oggi{
        border:2px solid #053E85;
        font-weight:bold;
    }
</style>

I cicli php

<?php

$month = date('m');
$year = date('Y');
$oggi = date("d");
$giorni_settimana = array(1, "L", "M", "M", "G", "V", "S", "D");
$mese = array('Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno', 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', 'Dicembre');
$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 "<p>" . $mese[($month - 1)] . "</p>";
echo "<table class='cal_oriz'>";
echo "<tr>";
$g = $primo_del_mese;
for ($i = 1; $i <= $giorni_nel_mese; $i++) {
    $classe = "";
    if ($giorni_settimana[$g] == "D") {
        $classe = " class=\"dom\"";
    } elseif ($giorni_settimana[$g] == "S") {
        $classe = " class=\"sab\"";
    }
    echo "<td $classe>" . $giorni_settimana[$g] . "</td>";
    if ($g == 7) {
        $g = 1;
    } else {
        $g++;
    }
}
echo "</tr>";
echo "<tr>";
for ($i = 1; $i <= $giorni_nel_mese; $i++) {
    $classe = "";
    if ($i == $oggi) {
        $classe = " class=\"oggi\"";
    }
    echo "<td $classe>$i</td>";
}
echo "</tr>";
echo "</table>";

Aggiornamento 8/12/2014

Ho aggiunto i backslash nel codice php per evitare errori di sintassi. Ho modificato il css con quello dell'esempio. Ora dovrebbe funzionare anche con il copia/incolla. Grazie a Carlo per la segnalazione.

criric

Mi sono appassionato di programmazione web a 34 anni, un pò tardi, da allora però non perdo mai occasione per imparare qualcosa di nuovo in questi campi.

Inserisci un commento

Codice antispam

Categorie

Comunicazioni

Puoi utilizzare questo modulo per qualsiati tipo di segnalazione.

Codice antispam

 

I dati di questo modulo non verranno pubblicati.