Sto cercando di ottenere l'intervallo settimana utilizzando domenica come data di inizio e una data di riferimento, ad esempio $date
, ma non riesco proprio a capirlo.Ottenere inizio e fine giorni per una determinata settimana in PHP
Ad esempio, se avessi $ data come 2009-05-01, riceverei 2009-04-26 e 2009-05-02. Il 2009-05-10 produrrebbe il 2009-05-10 e il 2009-05-16. Il mio codice attuale si presenta così (non mi ricordo dove ho sollevato da, come ho dimenticato di mettere giù l'url nei miei commenti):
function x_week_range(&$start_date, &$end_date, $date)
{
$start_date = '';
$end_date = '';
$week = date('W', strtotime($date));
$week = $week;
$start_date = $date;
$i = 0;
while(date('W', strtotime("-$i day")) >= $week) {
$start_date = date('Y-m-d', strtotime("-$i day"));
$i++;
}
list($yr, $mo, $da) = explode('-', $start_date);
$end_date = date('Y-m-d', mktime(0, 0, 0, $mo, $da + 6, $yr));
}
ho capito tutto quello che ha fatto è stato aggiungere 7 giorni per la corrente Data. come lo faresti?
ho usato il seguente per ottenere l'ultima data di domenica formattata: data ('Ym-d', strtotime ('last_sunday')) –
Dai una prova alla classe DateTime di PHP5! – jjwdesign
@ John M., vedi il mio commento qui sotto su come "domenica scorsa" può essere problematico se oggi è domenica e vuoi __questa settimana. – cdmo