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'
}
?>
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 lenext 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);
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.
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>
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));
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
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
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)));
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;
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.
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 ";
?>
$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);