http://it.php.net/manual/it/function.date.php
Prova ad elaborare i dati ricavati dalle seguenti funzioni:
la prima,get_monday, dato il valore numerico della settimana ti restituisce il corrispondente lunedì mentre la seconda, select_settimana, ti restituisce un menù con indicata l'inizio e la fine della settimana passata come argomento.
Puoi richiamare la funzione così:
$array_settimana=array("1","2","3","4","5");
select_settimana($array_settimana,"5","s");
function get_monday ($week, $year=""){
$first_date = strtotime("1 January ".($year ? $year : date("Y")));
$w_day = date("w", $first_date);
$d_week = 0;
switch($w_day){
case 1: $monday = $first_date;
break;
case 2:
case 3:
case 4: $d_week = 604800;
default:$monday = strtotime("Monday", $first_date)-$d_week;
}
$plus_week = "+".($week-1)." week";
return (strtotime($plus_week, $monday));
}
function select_settimana($array_value,$default,$periodo){
// set_display($boxname,$serie_def)
?><SELECT NAME ='settimana' <? set_display("settimana",$periodo) ?> ><?
foreach ($array_value as $index => $value){
//echo "
$value";
//echo "$default";
$sett=get_monday ($value, "2006");
$d=date("z", $sett); //gg dell'anno che parte da 0
$d=date("d", $sett);
$m=date("m", $sett);
$m=to_string($m);
$l=strlen($d);
if ($l=="1") $sp="";
else $sp="";
$label=$d.$sp.$m;
if ($value == $default)
echo "<option value='$value' selected>$label</option>";
else
echo "<option value='$value'>$label</option>";
}
echo "<select>";
}
function set_display($boxname,$serie_def){
$stmp="n";
switch($serie_def){
case "s": if ($boxname=='settimana') $stmp="y"; break;
case "g": if (($boxname=='n_giorno')OR ($boxname=='n_mese')) $stmp="y"; break;
case "m": if ($boxname=='n_mese') $stmp="y"; break;
}
if ($stmp=="y")
echo "style='display:block;'";
else
echo "style='display:none;'";
}