Ciao ragazzi.
Vi volevo postare un calendario php fatto interamente da me. Le peculiarità di tale calendario sono :
- Formattazione data italiana dd/mm/YY
- Abilitato per mese successivo e precedente
- Può inviare (tramite metodo post) il giorno , il mese e l'anno selezionati in una pagina in cui possono servire
- Fatto in php
- Sicuro e affidabile.
Spero vi possa essere utile
Ancora lo sto utilmando ben accetti commenti e critiche
Vi volevo postare un calendario php fatto interamente da me. Le peculiarità di tale calendario sono :
- Formattazione data italiana dd/mm/YY
- Abilitato per mese successivo e precedente
- Può inviare (tramite metodo post) il giorno , il mese e l'anno selezionati in una pagina in cui possono servire
- Fatto in php
- Sicuro e affidabile.
Spero vi possa essere utile
PHP:
<?php
// Classe calendario
// Autore : Malorgio CLaudio Ludovico - Dalli Guido
// Questa classe crea un calendario perpetuo che cliccando sul giorno selezionato manda in POST la data selezionata
// ShowCalendar(date("m"),date("Y")) per chiamare il calendario in qualsiasi pagina php
// Inizializzo funzione ShowCalendar passandogli MESE e ANNO
function ShowCalendar($m,$y)
{
if(isset($_POST['dp'])){
//echo 1;
$m = (int)date( "m" ,(int)$_POST['precedente']);
// $m = date("m", strtotime($_POST['precedente'])) ;
$y = (int)date( "Y" ,(int)$_POST['precedente']);
// $m = date("Y", strtotime($_POST['precedente'])) ;
//echo $m;
//echo $y;
}
elseif(isset($_POST['ds'])){
//echo 2;
$m = (int)date( "m" ,(int)$_POST['successivo']);
// $m = date("m", strtotime($_POST['successivo'])) ;
$y = (int)date( "Y" ,(int)$_POST['successivo']);
// $m = date("Y", strtotime($_POST['successivo'])) ;
$m = $m;
$y = $y;
//echo $m;
//echo $y;
}
elseif(isset($_POST['giorno'])){
$giorno = $_POST['giorno'];
}
else{
//echo 3;
$m = $m;
$y = $y;
//echo $m;
//echo $y;
}
// Creo i tasti mese precedente e mese successivo
$precedente = mktime(0, 0, 0, $m -1, 1, $y);
//echo $precedente;
$successivo = mktime(0, 0, 0, $m +1, 1, $y);
//echo $successivo;
// Array dei mesi
$nomi_mesi = array(
"Gennaio",
"Febbraio",
"Marzo",
"Aprile",
"Maggio",
"Giugno",
"Luglio",
"Agosto",
"Settembre",
"Ottobre",
"Novembre",
"Dicembre"
);
// Array dei giorni
$nomi_giorni = array(
"Lun",
"Mar",
"Mer",
"Gio",
"Ven",
"Sab",
"Dom"
);
// Imposto le colonne del calendario
$cols = 7;
// Credo i giorni
$days = @date("t",@mktime(0, 0, 0, $m, 1, $y));
// Ricavo lunedi
$lunedi= @date("w",@mktime(0, 0, 0, $m, 1, $y));
// controllo del lunedi (Banale)
if($lunedi==0) $lunedi = 7;
// Inizializzo la tabella
echo "<form method=\"post\">\n";
echo "<table>\n";
echo "<tr>\n
<td id=\"td_calendario\" colspan=\"".$cols."\">
<input type=\"submit\" id=\"form_calendario\" name=\"dp\" value=\"<<\"/>
<input type=\"hidden\" name=\"precedente\" value=\"".$precedente."\"/>
" . $nomi_mesi[$m-1] . " " . $y . "
<input type=\"submit\" id=\"form_calendario\" name=\"ds\" value=\">>\"/>
<input type=\"hidden\" name=\"successivo\" value=\"".$successivo."\"/>
</td>
</tr>
</table>
</form>
<form method=\"post\" action=\"index.php\">\n
<table>
<tr>\n";
// ricavo i giorni con un for_each
foreach($nomi_giorni as $v)
{
echo "<td id=\"td_calendario\">".$v."</td>\n";
}
echo "</tr>";
// Ciclo for che è il cuore della tabella molto scolastico ma preciso , mi crea la tabella tenendo conto dell incremento dei giorni e dei lunedi di ogni mese
for($j = 1; $j<$days+$lunedi; $j++)
{
if($j%$cols+1==0)
{
echo "<tr>\n";
}
// Controllo per vedere se devo riepire o meno delle celle
if($j<$lunedi)
{
echo "<td><input type=\"hidden\" name=\"anno\" value=\"".$y."\"/><input type=\"hidden\" name=\"mese\" value=\"".$m."\"/></td>\n";
}else{
$day= $j-($lunedi-1);
$data = @strtotime(@date($y."-".$m."-".$day));
$oggi = @strtotime(@date("Y-m-d"));
// Mando in post i giorni cosi posso passarli ad altre pagine se necessario
if($data != $oggi)
{
echo "<td id=\"td_calendario\"><input id=\"form_calendario\" type=\"submit\" name=\"giorno\" value=\"".$day."\"/></td>";
}else{
echo "<td id=\"td_calendario\"><input id=\"oggi\" type=\"submit\" name=\"giorno\" value=\"".$day."\"/></td>";
}
}
// Se le colonne sono finite chiudo
if($j%$cols==0)
{
echo "</tr>";
}
}
// Chiudo la tabella e il form
echo "<tr></tr>";
echo "</table>";
echo "</form>";
}
?>
Ancora lo sto utilmando ben accetti commenti e critiche