0

私の日の値は1から7で、1は月曜日、7は日曜日です。

来週の適切な日のstrtotime値を取得する必要があります。

例:今日は11月13日火曜日です。

私の日の値は「2」なので、strtotimeは11月20日火曜日の適切な値を返す必要があります。私の日の値は「1」なので、strtotimeは11月19日月曜日の適切な値を返す必要があります。私の日の値は「5」なので、strtotimeは11月23日金曜日の適切な値を返す必要があります。

これが、いくつかの組み込みPHP関数(strtotime(+ 1week + something))で実行できることを望んでいますか?そうでない場合は、いくつかの比較チェックをコーディングしようとします!

ありがとう!

4

5 に答える 5

2
function dayNextWeek($num) {
  return date('Y-m-d', strtotime("+1 week +" . ($num - date('w'))  . "days"));
}

そしてテストするには:

foreach (range(1, 7) as $i) {
  echo $i . ' ' . dayNextWeek($i) . "\n";
}

出力

1 2012-11-19
2 2012-11-20
3 2012-11-21
4 2012-11-22
5 2012-11-23
6 2012-11-24
7 2012-11-25
于 2012-11-13T19:31:50.317 に答える
0

広範囲にテストされていません:

$givenDayNumber = 1;             // Your value here
$date = new DateTime();          // Today (reference point)
$currentDayOfWeek = date('N');   // This is 1 = Monday, see php date manual for more options
$diff = $givenDayNumber- $currentDayOfWeek; // Difference between given number and todays number
$date->modify('+ '.$diff.' day'); // Subtract difference
$date->modify('+ 1 week');        // Add a week
echo $date->format('d/m/Y');      // Output

ここでいじくり回すためのコードパッド:http://codepad.org/7SylbJOX

于 2012-11-13T19:19:54.483 に答える
0
function getNext($dow)
{
    $now = intval(date('N'));

    $toAdd = $dow - $now;
    if($toAdd<=0)
    {
        $toAdd += 7;
    }

    return date('r', strtotime('+'.$toAdd.'day'));
}
于 2012-11-13T19:23:43.653 に答える
0

うまくいけば、これはあなたのために働くはずです。

<?php
$array = array('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday');
$your_value = 2;
$str = 'next ' . $array[$your_value -1];
echo date('D d M Y', strtotime($str));

?>

http://codepad.org/OIrzRxpl

于 2012-11-13T19:27:00.317 に答える
0

試す:

 $day_nxt_week = date('N', strtotime(date('Ymd') . '+1 week'));
 print_r($day_nxt_week);

デモ

于 2012-11-13T19:27:36.670 に答える