Je voudrais trouver le timbre à date de lundi, mardi, mercredi, etc. Si ce jour n'est pas encore venu cette semaine, je voudrais que la date soit cette semaine, sinon, la semaine prochaine. Merci!
Voir strtotime()
strtotime('next tuesday');
Vous pourriez probablement savoir si vous avez dépassé ce jour en regardant le numéro de la semaine:
$nextTuesday = strtotime('next tuesday');
$weekNo = date('W');
$weekNoNextTuesday = date('W', $nextTuesday);
if ($weekNoNextTuesday != $weekNo) {
//past tuesday
}
Je sais que c'est une réponse un peu tardive, mais j'aimerais ajouter ma réponse pour de futures références.
// Create a new DateTime object
$date = new DateTime();
// Modify the date it contains
$date->modify('next monday');
// Output
echo $date->format('Y-m-d');
La bonne chose est que vous pouvez également le faire avec des dates autres que celles d'aujourd'hui:
// Create a new DateTime object
$date = new DateTime('2006-05-20');
// Modify the date it contains
$date->modify('next monday');
// Output
echo $date->format('Y-m-d');
Pour faire la gamme:
$monday = new DateTime('monday');
// clone start date
$endDate = clone $monday;
// Add 7 days to start date
$endDate->modify('+7 days');
// Increase with an interval of one day
$dateInterval = new DateInterval('P1D');
$dateRange = new DatePeriod($monday, $dateInterval, $endDate);
foreach ($dateRange as $day) {
echo $day->format('Y-m-d')."<br />";
}
Manuel PHP - DateTime
Manuel PHP - DateInterval
Manuel PHP - DatePeriod
Manuel PHP - clone
La question est étiquetée "php", comme l'a dit Tom, la façon de procéder ressemblerait à ceci:
date('Y-m-d', strtotime('next tuesday'));
Désolé, je n'ai pas remarqué la balise PHP - mais quelqu'un d'autre pourrait être intéressé par une solution VB:
Module Module1
Sub Main()
Dim d As Date = Now
Dim nextFriday As Date = DateAdd(DateInterval.Weekday, DayOfWeek.Friday - d.DayOfWeek(), Now)
Console.WriteLine("next friday is " & nextFriday)
Console.ReadLine()
End Sub
End Module
Vous pouvez utiliser la bibliothèque Carbon.
Exemple: la semaine prochaine vendredi
Carbon::parse("friday next week");
Si je vous comprends bien, vous voulez les dates des 7 prochains jours?
Vous pouvez effectuer les opérations suivantes:
for ($i = 0; $i < 7; $i++)
echo date('d/m/y', time() + 86400 * $i);
Consultez la documentation de la fonction de date pour le format dans lequel vous le souhaitez.
PHP 7.1:
$next_date = new DateTime('next Thursday');
$stamp = $next_date->getTimestamp();
Manuel PHP getTimestamp ()
si vous voulez trouver lundi alors 'dayOfWeek' est 1 si c'est mardi ce sera 2 et ainsi de suite.
var date=new Date();
getNextDayOfWeek(date, 2);
// c'est pour trouver mardi prochain
function getNextDayOfWeek(date, dayOfWeek) {
// Code to check that date and dayOfWeek are valid left as an exercise ;)
var resultDate = new Date(date.getTime());
resultDate.setDate(date.getDate() + (7 + dayOfWeek - date.getDay()) % 7);
return resultDate;
}
J'espère que cela vous sera utile, merci
Le documentation PHP pour time () montre un exemple de la façon dont vous pouvez obtenir une date une semaine. Vous pouvez le modifier pour aller dans une boucle qui itère un maximum de 7 fois, obtenir l'horodatage à chaque fois, obtenir la date correspondante et, à partir de là, obtenir le jour de la semaine.