Obtenez la date de lundi prochain, mardi, etc
Je voudrais trouver le timbre dateur du lundi, mardi, mercredi, etc. Si ce jour n'est pas venu cette semaine encore, je voudrais que la date de cette semaine, sinon, la semaine prochaine. Merci!
9 réponses
Voir strtotime()
strtotime('next tuesday');
Vous pourriez probablement savoir si vous avez passé ce jour-là 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 un peu tard, mais je voudrais 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 aussi le faire avec des dates autres qu'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 plage:
$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 />";
}
Références
Manuel PHP - DateTime
Manuel PHP - DateInterval
Manuel PHP - DatePeriod
Manuel PHP - clone
La question est étiquetée " php " donc, comme L'a dit Tom, la façon de le faire ressemblerait à ceci:
date('Y-m-d', strtotime('next tuesday'));
Désolé, je n'ai pas remarqué la balise PHP-cependant 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
Si je vous comprends bien, vous voulez les dates des 7 prochains jours?
Vous pouvez faire ce qui suit:
for ($i = 0; $i < 7; $i++)
echo date('d/m/y', time() + 86400 * $i);
Vérifiez la documentation de la fonction date pour le format dans lequel vous la souhaitez.
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);
/ / Ceci 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
La documentationPHP pour time () montre un exemple de la façon dont vous pouvez obtenir une date une semaine. Vous pouvez modifier cela 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 cela obtenir le jour de la semaine.
Vous pouvez utiliser Carbone bibliothèque.
Exemple: la semaine Prochaine vendredi
Carbon::parse("friday next week");
PHP 7.1:
$next_date = new DateTime('next Thursday');
$stamp = $next_date->getTimestamp();
Manuel PHP méthode gettimestamp()