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!

58
demandé sur Adrian Sarli 2009-07-27 19:09:44

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
}
104
répondu Tom Haigh 2009-07-27 15:30:43

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

41
répondu 2015-01-28 15:10:08

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'));
22
répondu Josh Davis 2009-07-27 15:18:40

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
4
répondu Larry Watanabe 2014-03-20 16:25:21

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.

2
répondu Mike 2009-07-27 15:16:52

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

1
répondu Eann 2014-11-20 11:39:56

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.

0
répondu George Jempty 2009-07-27 15:17:30

Vous pouvez utiliser Carbone bibliothèque.

Exemple: la semaine Prochaine vendredi

Carbon::parse("friday next week");
0
répondu Farid Movsumov 2018-06-06 09:40:34

PHP 7.1:

$next_date = new DateTime('next Thursday');
$stamp = $next_date->getTimestamp();

Manuel PHP méthode gettimestamp()

0
répondu Oksana Romaniv 2018-09-03 07:51:32