下周二,不是在这个星期二之后

时间:2014-07-08 08:23:34

标签: php datetime time strtotime

如何(以优雅的方式)选择第一个即将到来的星期二,如今今天是星期二,请立即使用?

我第一次使用

strtotime('next Tuesday');

然后时钟在星期一午夜过去,strtotime开始针对NEXT星期二

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

似乎没有任何改变(仍然针对下周的星期二)

strtotime('this tuesday')

今天有效,但明天会在明天定位吗?

4 个答案:

答案 0 :(得分:2)

strtotime("this tuesday")正是您要找的

//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

答案 1 :(得分:0)

请查看此代码

<?php

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

答案 2 :(得分:0)

一种方法是将这个星期二与今天进行比较,如果它低于今天,那么下周二就是下周:

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

答案 3 :(得分:0)

你可以避免使用声明。

 <?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 ;


  ?>