[PHP] Ho la settimana e l'anno cerco le date

napuleone

Utente Attivo
12 Nov 2014
76
0
6
Entro con il numero di settimana e l'anno trovati con
$sett = date('W',$ladata);
$anno = date('Y',$ladata);
passo i dati ($sett e $anno) ad un'altra finestra
ovviamente $ladata non la vedo più.

come recupero i giorni compresi nella settimana di quell'anno ?

ho pensato ad un for next dei giorni dell'anno sino a trovare le date dei giorni della settimana che mi interessano ma mi pare troppo lungo, avete qualche comando nascosto nel cappello? :):):)
 
Ultima modifica:
passa anche ladata come parametro ($sett , $anno , $ladata)
 
è complicato da spiegare ma non posso altrimenti sarebbe troppo semplice cmq ho risolto con il for next di 10 giorni partendo da 01/01/$anno + $sett*7 -7 e controllando che le date siano nella settimana da lì è facile trovare la prima e l'ultima.
DataRev2() mi trasforma la data in dd-mm-yy
PHP:
function dalalSett($Sett,$anno){ 
    $t=0;$Di='';$Df="";
    $Data=date("Y/m/d",strtotime ((7*$Sett-7). ' day' , strtotime ($anno.'/01/01')));
    for ($i = 0; $i <= 10; $i++) {
            if (date('W',strtotime($Data))==$Sett){
                if ($t==0){$Di=$Data;$t ++;}else{$Df=$Data;}
            }
          $Data=date("Y/m/d",strtotime ( '1 day' , strtotime ( $Data )));
    } //for
    return "Dal: ". DataRev2($Di)." Al: ". DataRev2($Df);
}
calcolando che è l'ultima settimana che cambia l'anno dovrebbe funzionare
;) cmq grazie
 
Ultima modifica di un moderatore:
si, sembra funzionare.
si può fare anche cosi
PHP:
function dalalSett($Sett, $anno) {
    $data = new DateTime();
    $data->setISODate($anno, $Sett, 1);
    $dal = $data->format('d/m/Y');
    $data->setISODate($anno, $Sett, 7);
    $al = $data->format('d/m/Y');
    return "dal " . $dal . " al " . $al;
}

echo dalalSett(52, 2016);
 

Discussioni simili