calendario e click <a href='

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
42
Massa, Italy
Salve ho questo calendario che ho preso in questo forum..
volevo sapere come posso fare da un codice javascript stampara la data in inglese tramite quella italiano del calendario?

vi posto il codice:

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>";
}
?>

il formato che mi serve per il mio script è cosi:
2014-12-21 20:13:28

per adesso mi interessa solo così : 2014-12-21

come posso fare?

grazie mille e buona serata.
 
Ciao,
PHP:
echo " onclick='alert(\"$year-$month-$y\")'>$y";
io ho usato alert ma puoi modificate con location.href=
 
a che righa lo devo mettere.. ??

perché il calendario va bene.. ma volevo aggiungere quel codice che hai fatto anche te.. ma io devo inserire:
Codice:
function save_window(nome){
	window.opener.document.getElementById('data_reg').value = nome;
	self.close();
}

ed questa funzione si trova in popup .

idea?

grazie mille.
 
si usa cosi:
Codice:
<a href="javascript:save_window('<?php echo $file_name; ?>')"><?php echo $file_name; ?></a>
questa è per un'atra cosa.. ma si usa come qua.
idea?
 
si può fare dove c'è selezionato il rosso ovvero il giorno .. posso fare clic?

grazie ti allego l'immagine.

cal.png
 
c'è lo quasi fatta.. ma modificandolo... solo che ho perso lo stile del colore del giorno.. ida come ripararare ?

PHP:
// 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  class='daycolor'>";
            if ($y > 0 && $y <= $giorni_nel_mese) {
                if ($y == date('d') && $month == date('m') && $year == date('Y')) {
                    echo "";
                }
				?>
                <a href="javascript:save_date('<?php echo "".$year."-".$month."-".$y.""; ?>')"><?php echo $y; ?></a>
				<?php
            } else {
              
            }
            echo "</td>";
        }
        echo "</tr>";
        if ($y >= $giorni_nel_mese && $i < 6)
            break;
    }

grazie mille.
 
Riga 90, al posto di
PHP:
echo ">$y";
metti
PHP:
echo " onclick='save_date(\"$year-$month-$y\")'>$y";
 
ok, una cosa.. che ho un problema.. piccolo..

io da cosi: 2015-01-1 a cosi 2015-01-01

come posso risolvere il problema?
grazie mille.
 
Puoi provare con la funzione str_pad()
PHP:
echo " onclick='save_date(\"$year-$month-" . str_pad($y, 2, '0', STR_PAD_LEFT) . "\")'>$y";
 

Discussioni simili