Se ti serve la data nel formato internazionale, temo che l'approccio che ti ho suggerito finora vada accantonato.
Se hai PHP 5, puoi usare date('c', $time), con $time che può essere calcolato con mktime.
Se non hai PHP 5, puoi cercare una funzione personalizzata già fatta o crearne una tu studiando come funziona l'ISO 8601.
Diciamo che il tuo esempio, puo andare bene, se adattato, in quanto lo vorrei combinare con il plugin fullcalendar. In questo modo non avrei il problema di calcolare di sapere qualche giorno della settimana corrisponde quella data. Il tuo script una volta impostata la data iniziale mi va ad inserire sul plugin il tunro sottoforma di evento, basta che la data sia in formato 2014-10-11. Ora devo solo capire come visualizzare i dati del tuo script sottoforma di array, come postato la pagina precedente.
Se il mio script va bene e vuoi la data nel formato YYYY-MM-GG, allora siaCodice PHP:$data = $aa . '-' . str_pad($mm,2,'0',STR_PAD_LEFT) . '-' . str_pad($gg,2,'0',STR_PAD_LEFT);
Ok, ho fatto una prova ma guarda cosa mi restituisce:
http://geks.altervista.org/1.php
Scusa, dove sbaglio?
Codice PHP:<?php
$data = '11/10/2014';
$turni = array('sera','pomeriggio','Mattina','Notte','Riposo');
$n_g_mesi = array(1=>31,28,31,30,31,30,31,31,30,31,30,31);
list($gg,$mm,$aa) = explode('/', $data);
$gg = (int)$gg;
$mm = (int)$mm;
$n_g_q_mese = $n_g_mesi[$mm];
$numero_turni = 5;
n = count($turni);for($i=0; $i<$numero_turni; $i++){$data.' '.$turni[$i%$n]."<br />\n";$gg = $gg%$n_g_q_mese+1;if($gg==1){$mm = $mm%12+1;if($mm==3 && $aa%4==0 && $n_g_q_mese==28){ // se l'anno è bisestile$mm = 2;$gg = $n_g_q_mese = 29;}else{$n_g_q_mese = $n_g_mesi[$mm];if($mm==1)$aa++;}}$data = $aa . '-' . str_pad($mm,2,'0',STR_PAD_LEFT) . '-' . str_pad($gg,2,'0',STR_PAD_LEFT);
$return = array('id' => 11, // dovrebbe essere autoincremental e univoco'title' => $turni[$i%$n], 'start' => $data,'url' => "www.sito.it\modifica.php?id=11");
echo json_encode($return);
}?>
A parte che è formattato male perché vedo roba commentata che non dovrebbe esserlo ma spero sia solo quando l'hai postato, e vedo anche un "n = count($turni);" e dovrebbe essere "$n = count($turni);" ma anche questo sarà un errore di trasposizione.
Ad ogni modo, non ho idea di come funzioni json_encode, ma, ragionando da ingegnere, se io volessi 11 e uscisse 12, allora metterei 10 così ti uscirebbe 11 e pace ^^
EDIT: Mi rimangio tutto. In realtà parte da quella dopo perché l'hai messo dopo che la data è già aumentata...
dovrebbe essereCodice PHP:$return = ...
echo json...
$data = ...
Ultima modifica di ZioLuffio; 14-10-2014 a 21:46
Si ci sono problemi di formattazione, non so perche ogni volta che copia dal mio editor per postare sul forum, mi crea problemi.
Modificando come hai detto funziona correttamente, io lo mettevo in fondo alla script l'echo json_encode
Io per creare l'array in json ho fatto in questo modo:
Ho associato bene le variabili ?codice:$return = array( 'id' => 11, // dovrebbe essere autoincremental e univoco 'title' => $turni[$i%$n], 'start' => $data, 'url' => "www.sito.it\modifica.php?id=11" ); echo "<br />"; echo json_encode($return);
$turni[$i%$n] = mi restituisce il nome del turno
$data = mi restituisce la data (es. 2014-10-14)