显示下周四的日期

Show date of next thursday

我使用下面的代码来显示每个下周四的日期。

现在我遇到了以下问题:今天是星期四,但我不想显示下周的日期,直到当天结束。这怎么可能?

每周四晚上 7 点到 10 点我们有值班时间。因此我需要显示今天的日期。晚上 10 点后我可以显示下个星期四的日期(例如 30.11。)

当前代码:

 $timestmp = strtotime('next thursday');
 setlocale(LC_TIME, "de_DE");
 $next = strftime('%A, %d.%m.%Y', $timestmp); 

所以你想在这个星期四今天演出吗? 然后传递给 strtotime,昨天的时间戳。那样

 $timestmp = strtotime('next thursday', strtotime('-1 day'));

然后从昨天开始寻找下周四,也就是今天

if(date('l') == 'Thursday') { echo 'Today is Thursday! Whola!' } else { $timestmp = strtotime('next thursday'); setlocale(LC_TIME, "de_DE"); $next = strftime('%A, %d.%m.%Y', $timestmp); }

你可以有一个简单的 if condition 来检查今天是否是星期四,打印今天的日期。否则,下周四打印

setlocale(LC_TIME, "de_DE");

if (date('l') == 'Thursday') {
    $thu = strftime('%A, %d.%m.%Y');
} else {
    $timestmp = strtotime('next thursday');
    $thu = strftime('%A, %d.%m.%Y', $timestmp);
}

echo $thu;

如果是星期日、星期一、星期二或星期三,以下代码会抓取下星期四。如果是星期五或星期六,它会抓住最后一个星期四。如果今天是星期四,它会抓取当天。

$now = new DateTime();
if ($now->format('w') < 4) {
    $now->modify('next thursday')
} elseif ($now->format('w') > 4) {
    $now->modify('last thursday')
}

echo $now->format('Y-m-d');