mowgli
mowgli

Reputation: 2869

Next tuesday, not AFTER this tuesday

How do I (in an elegant way) get strtotime to select the first upcoming tuesday, and use today if today is tuesday?

I first used

strtotime('next Tuesday');

Then the clock passed midnight monday and strtotime began targeting the NEXT tuesday

strtotime('next Tuesday', strtotime('tomorrow'))

does not seem to change anything (still targets the tuesday next week)

strtotime('this tuesday')

works today, but which tuesday will it target tomorrow?

Upvotes: 1

Views: 342

Answers (4)

FuzzyTree
FuzzyTree

Reputation: 32392

strtotime("this tuesday") is what you're looking for

//given current datetime of Tue Jul  8 03:40:27
print date('Y-m-d',strtotime('this tuesday')); //2014-07-08
print date('Y-m-d',strtotime('this monday')); //2014-07-14
print date('Y-m-d',strtotime('this wednesday')); //2014-07-09

Upvotes: 2

Mubo
Mubo

Reputation: 1070

you can avoid using statement.

 <?php 
    $today = date('D');
    $Tuesday= strtotime("Monday"); // change To Monday to test
    $secondTuesday=strtotime("next Tuesday",$Tuesday);
    echo $today === $Tuesday? date('d.m.Y',$secondTuesday):$today ;


  ?>

Upvotes: 0

artragis
artragis

Reputation: 3713

One way is to compare this tuesday to today, if it is lower than today so next tuesday is next week :

$today = new DateTime("today");
$tuesday = new DateTime("this tuesday");
if($today > $tuesday){
   $tuesday->modify("next tuesday");
}

Upvotes: 0

Karthick Kumar
Karthick Kumar

Reputation: 2361

please review this code

<?php

 $day=date('D');
if($day=='r'){
    $date=date('Y-m-d');
}else{
    $date=date('Y-m-d',strtotime('next tuesday'));
}
echo $date;
?>

Upvotes: 0

Related Questions