Allora.... una risposta alla volta.
Innanzi tutto io snellirei un minimo la tua funzione come segue.
Codice PHP:
function data_piu_10($data) {
list ($a, $m, $g) = explode("-", $data);
$ts_data = mktime(0, 0, 0, $m, $g, $a);
$giorni = 60 * 60 * 24 * 10;
$data_succ = $ts_data + $giorni;
/*
fatti ritornare il timestamp della data
inserita dall'utente, perché ci si lavora meglio
*/
return $data;
}
$data = "2010-05-26";
echo data_piu_10($data);
// in questo modo stampi a video il timestamp della data
Ho snellito un po' la funzione, ed avrei anche potuto limare altre linee di codice, ma volevo farti capire.
Peraltro, per uscire dalla funzione e ritornare il risultato, devi usare la parola chiave RETURN e non echo, vedi l'esempio che capisci al volo.
Questo per ricalcare il tuo esempio.
Per la seconda domanda, invece, devi sfruttare quello che trovi nel manuale ufficiale, alla voce relativa alla funzione
DATE().
Cito:
N - ISO-8601 numeric representation of the day of the week (added in PHP 5.1.0) 1 (for Monday) through 7 (for Sunday)
Quindi, puoi sfruttare le "letterine" magiche della funzione per il tuo scopo.
Riprendo l'esempio di sopra e ne modifico una parte.
Codice PHP:
$array_giorni_settimana[1] = "Lunedì";
$array_giorni_settimana[2] = "Martedì";
$array_giorni_settimana[3] = "Mercoledì";
$array_giorni_settimana[4] = "Giovedì";
$array_giorni_settimana[5] = "Venerdì";
$array_giorni_settimana[6] = "Sabato";
$array_giorni_settimana[7] = "Domenica";
function data_piu_10($data) {
list ($a, $m, $g) = explode("-", $data);
$ts_data = mktime(0, 0, 0, $m, $g, $a);
$giorni = 60 * 60 * 24 * 10;
$data_succ = $ts_data + $giorni;
return $data;
}
$data = "2010-05-26";
$timestamp_data = data_piu_10($data);
$giorno = date("d", $timestamp_data);
$num_giorno_settimana = date("N", $timestamp_data);
$giorno_settimana = $array_giorni_settimana[$num_giorno_settimana];
echo "$giorno = $giorno_settimana";
Non l'ho testato e l'ho scritto direttamente qui nel forum, ma dovrebbe funzionare.