3

次のコードを使用して、平日の Ymd 形式を取得しています。

$monday = date('Y-m-d', strtotime('Monday'));
$tuesday = date('Y-m-d', strtotime('Tuesday'));
$wednesday = date('Y-m-d', strtotime('Wednesday'));
$thursday = date('Y-m-d', strtotime('Thursday'));
$friday = date('Y-m-d', strtotime('Friday'));

今日は 2012 年 8 月 1 日 (第 31 週) です。必要な月曜日の値は 2012 年 7 月 30 日です。

strtotime('Monday')来週の月曜日はどうしてですか?

4

3 に答える 3

8

date('Y-m-d')今日の日付、つまり 8 月を返すためです。そして、あなたはに変換mondayしていtimeます。date(Y-m-d)その時間は(2012 年 8 月)で表されます。したがって、明白な答えは、今日から始まる次の月曜日になります。

先週の日付を取得するには、次を使用します

$monday=date(Y-m-d,strtotime('monday this week'))
于 2012-08-01T09:32:32.353 に答える
1

私のアプリケーションでは、現在の週の日付の変数を作成するだけで済みました。

それが私がこのコードに沿った理由です:

$mon_value= date('Y-m-d', strtotime('Monday this week'));
$tue_value= date('Y-m-d', strtotime('Tuesday this week'));
$wed_value= date('Y-m-d', strtotime('Wednesday this week'));
$thu_value= date('Y-m-d', strtotime('Thursday this week'));
$fri_value= date('Y-m-d', strtotime('Friday this week'));
于 2012-08-01T09:44:15.620 に答える
1

必ず翌日返却タイプです。次の月曜日は 08-06 で、次の木曜日は 08-02 です。

<?php
  function getDateOfWeekDay($day) {
    $weekDays = array(
      'Sunday',
      'Monday',
      'Tuesday',
      'Wednesday',
      'Thursday',
      'Friday',
      'Saturday',
    );

    $dayNumber = array_search($day, $weekDays);
    $currentDayNumber =  date('w', strtotime('today'));

    if ($dayNumber > $currentDayNumber) {
      return date('Y-m-d', strtotime($day));
    } else {
      return date('Y-m-d', strtotime($day) - 604800);
    }
  }

  echo  getDateOfWeekDay('Monday');
?>
于 2012-08-01T09:31:05.333 に答える