web-dev-qa-db-fra.com

comment puis-je obtenir la plage de dates de la semaine dernière en php?

comment puis-je obtenir la plage de dates de la semaine dernière en php?

voir mes codes ci-dessous:

<?php 
    function get_last_week_dates(){
        // how can i get the date range last week ?
        // ex: today is 2014-2-8
        // the week date range of last week should be '2014-1-26 ~ 2014-2-1'
    }
?>
18
mingfish_004

Vous pouvez utiliser strtotime ()

$previous_week = strtotime("-1 week +1 day");

$start_week = strtotime("last sunday midnight",$previous_week);
$end_week = strtotime("next saturday",$start_week);

$start_week = date("Y-m-d",$start_week);
$end_week = date("Y-m-d",$end_week);

echo $start_week.' '.$end_week ;

METTRE &AGRAVE; JOUR

Changement du code pour gérer dimanche. Si le jour en cours est le dimanche, une semaine sera le dimanche précédent et le dimanche précédent sera de retour.

$previous_week = strtotime("-1 week +1 day");

De plus si nous avons besoin de trouver le current week et le next week date gamme nous pouvons faire comme

Cette semaine - 

$d = strtotime("today");
$start_week = strtotime("last sunday midnight",$d);
$end_week = strtotime("next saturday",$d);
$start = date("Y-m-d",$start_week); 
$end = date("Y-m-d",$end_week);  

Prochaine semaine - 

$d = strtotime("+1 week -1 day");
$start_week = strtotime("last sunday midnight",$d);
$end_week = strtotime("next saturday",$d);
$start = date("Y-m-d",$start_week); 
$end = date("Y-m-d",$end_week); 
72
Abhik Chakraborty

Simplement utiliser 

date("m/d/Y", strtotime("last week monday"));
date("m/d/Y", strtotime("last week sunday"));

Il donnera la date du lundi et du dimanche de la semaine dernière.

20
Pankaj Samal

vous avez besoin de la fonction strtotime pour cela

<center>
<?php
 function get_last_week_dates()
 {
        // how can i get the date range last week ?
        // ex: today is 2014-2-8
        // the week date range of last week should be '2014-1-26 ~ 2014-2-1'

        $startdate = "last monday";
        if (date('N') !== '1')
        { 
            // it's not Monday today
            $startdate .= " last week";
        }
        echo "<br />";
        $day = strtotime($startdate);
        echo date('r', $day);   
        echo "<br />";
        $sunday = strtotime('next monday', $day) - 1;
        echo date('r', $sunday);
    }
    get_last_week_dates();
?>
</center>
2
Ferrakkem Bhuiyan

Eh bien, juste pour le plaisir d'essayer de résoudre ceci:

date_default_timezone_set('UTC');
$firstDayOfLastWeek = mktime(0,0,0,date("m"),date("d")-date("w")-7);
$lastDayOfLastWeek = mktime(0,0,0,date("m"),date("d")-date("w")-1);
echo("Last week began on: ".date("d.m.Y",$firstDayOfLastWeek));
echo("<br>");
echo("Last week ended on: ".date("d.m.Y",$lastDayOfLastWeek));
2
ElDoRado1239

Cela devrait faire l'affaire 

$startWeek = date('Y-m-d',strtotime("Sunday Last Week"));
$endWeek = date('Y-m-d',strtotime("Sunday This Week"));

cela ne fonctionnerait pas si couru un lundi. Il irait dimanche dernier (la veille) au dimanche suivant. Donc, en utilisant la méthode de Abhik Chakraborty avec ce qui précède:

$startTime = strtotime("last sunday midnight",$previous_week);
$endTime = strtotime("next sunday midnight",$startTime);
$startDate = date('Y-m-d 00:00:00',$startTime);
$endDate = date('Y-m-d 23:59:59',$endTime);

Cela va maintenant donner 

start =  2014-08-10 00:00:00
endDate = 2014-08-17 23:59:59
1
Jason Bruce

Je sais que c'est vieux, mais voici une façon beaucoup plus succincte de le faire:

$startDate = date("m/d/y", strtotime(date("w") ? "2 sundays ago" : "last sunday"));
$endDate = date("m/d/y", strtotime("last saturday"));
echo $startDate . " - " . $endDate
1
Lifz

Vous pouvez faire de cette façon.

D'abord, obtenez l'horodatage actuel et soustrayez le nombre de jours souhaité.

$curTime = time();
echo date("Y-m-d",$curTime);
echo "<br />";
echo date("Y-m-d",($curTime-(60*60*24*7)));
0
Rocky

La plupart des autres solutions proposées ont été annulées un jour.
Si vous voulez dimanche à samedi pour la semaine dernière, c'est la façon de le faire.

$start = date("Y-m-d",strtotime("last sunday",strtotime("-1 week")));
$end = date("Y-m-d",strtotime("saturday",strtotime("-1 week")));

echo $start. " to ".$end;
0
Vincent

Afin de trouver la date de début et de fin de la semaine dernière, vous pouvez suivre ce code pour le faire. 

Cela fonctionne sur tous les intervalles pour trouver l'intervalle de date.

$Current = Date('N');
$DaysToSunday = 7 - $Current;
$DaysFromMonday = $Current - 1;
$Sunday = Date('d/m/y', strtotime("+ {$DaysToSunday} Days"));
$Monday = Date('d/m/y', strtotime("- {$DaysFromMonday} Days"));

Si tel est le cas, vous devez le modifier avec le datatime() pour pouvoir exécuter cette fonction.

$date = new DateTime();
$weekday = $date->format('w');
$diff = 7 + ($weekday == 0 ? 6 : $weekday - 1); // Monday=0, Sunday=6
$date->modify("-$diff day");
echo $date->format('Y-m-d') . ' - ';
$date->modify('+6 day');
echo $date->format('Y-m-d');

Utilisation de fonctions:

Si vous voulez trouver la plage de la dernière semaine à l'aide des fonctions, vous pouvez effectuer une préforme comme ceci.

Une fonction:

// returns last week's range
function last_week_range($date) {
$ts = strtotime("$date - 7 days");
$start = (date('w', $ts) == 0) ? $ts : strtotime('last sunday', $ts);
return array(
      date('Y-m-d', $start),
      date('Y-m-d', strtotime('next saturday', $start))
);
}

Utilisation:

$today=date();
print_r(last_week_range($today));

Toutes les fonctions ci-dessus qui ont été attribuées renverront la plage de la dernière semaine quel que soit le jour de début de la semaine.

0
Naresh Kumar .P

Celui-ci produira le bon résultat et traitera le numéro de lundi

<?php
$monday = strtotime("last monday");
$monday = date('W', $monday)==date('W') ? $monday-7*86400 : $monday;

$sunday = strtotime(date("Y-m-d",$monday)." +6 days");
$this_week_sd = date("Y-m-d",$monday);
$this_week_ed = date("Y-m-d",$sunday);

echo "Last week range from $this_week_sd to $this_week_ed ";
?>
0
Kavvson Empcraft
$lastWeekStartTime = strtotime("last sunday",strtotime("-1 week"));
$lastWeekEndTime = strtotime("this sunday",strtotime("-1 week"));
$lastWeekStart = date("Y-m-d",$lastWeekStartTime);
$lastWeekEnd = date("Y-m-d",$lastWeekEndTime);
0
PoengAlex