0

「翌日」が土曜日または日曜日の場合、次の月曜日または火曜日に切り替えるためのこのコードがあります。

ただし、次の月曜日が3月の場合は、スクリプトを3月ではなく2月に返してください。

誰かが私がどこが間違っているのかを理解するのを手伝ってもらえますか?

    // OP1
$option_1 = Date('Y-m-d', strtotime("+1 days"));
$dd_option_1 = date('l', strtotime( $option_1));

if ($dd_option_1 == "Saturday") {
         $option_1 = Date($option_1, strtotime("+2 days"));
         echo $option_1;
} 
else if ($dd_option_1 == "Sunday") {
         $option_1 = Date($option_1 , strtotime("+1 days"));
         echo $option_1;
}        
else {
echo $option_1;
}

TKS

4

3 に答える 3

3

の 2 番目と 3 番目の使用はdate()意味がありません。

Date($option_1, strtotime("+2 days"));

option_1は書式設定された時刻文字列であり、最初のパラメータは を最初に使用したときのように書式を指定する必要がありますdate()

日付が保存されていないが、常に現在の日付を使用している場合は、次を使用できます。

$option_1 = Date('Y-m-d', strtotime("+3 days"));

$option_1 = Date('Y-m-d', strtotime("+2 days"));
于 2013-02-26T16:28:21.853 に答える
0

単純な古い秒の計算を使用できます。

<?php
$tomorrow = time() + 86400;
$week_day = date('N', $tomorrow);
$out = null;

if ($week_day > 5) {
    $out = date("r", $tomorrow + 86400 * (8 - $week_day));
} else {
    $out = date("r", $tomorrow);
}
echo $out;

たくさんの strtotime がなくてもシンプルです。

于 2013-02-26T16:45:23.800 に答える
0

strtotimeには、「次の月曜日」などの特別な間隔を簡素化して指定できるオプションがあります。

// OP1
$option_1 = Date('Y-m-d', strtotime("+1 days"));
$dd_option_1 = date('l', strtotime( $option_1));

if ($dd_option_1 == "Saturday" || $dd_option_1 == "Sunday") {
    $option_1 = Date($option_1, strtotime("next Monday"));
}

echo $option_1;
于 2013-02-26T16:32:35.087 に答える