-1

正確な日付を取得するための 3 つのパラメーターがあります。次のパラメータがあります。

Month : integer (01-12) |
Week of month : integer (01-05) |
Day of week : (Sunday-Saturday)

上記に、日付を取得する 3 つのパラメーターがあります。

例えば:

01 as month 01金曜日と同じ週と曜日があるとしたら、それは返されるはずです03-01-2014

前提: 入力は将来の日付のみです。

4

2 に答える 2

2

これを拡張できると確信しています:

$month = 'January';
$week = 0;
$day = 'friday';
$year = date("Y") + 1;

$d = new DateTime();
$d->modify("first {$day} of {$month} {$year} +{$week} week");
echo $d->format('d/m/Y');
于 2013-04-09T13:14:46.760 に答える
2

strtotime を使用します。曜日と月を書き出す必要があるため (2013 年 1 月 1 日金曜日)、月の数字を名前に変換しています。曜日はすでに「金曜日」であると想定しています。

function calcDate($day,$week,$month)
{
  $thisYear = date("Y");

  $monthName = date("F", mktime(0, 0, 0, $month, 10)); //http://gilbert.pellegrom.me/php-month-number-to-month-name-the-easy-way/
  $query = $week." ".$day." ".$monthName;
  $outDate = strtotime($query." ".$thisYear));

  if (outDate < time())
  {
    $outDate = strtotime($query." ".($thisYear+1));
  }
  return date('d-m-Y', $outDate);
}
于 2013-04-09T13:10:03.433 に答える