我有一個三個參數,我希望得到確切的日期。我有以下參數:PHP日期時間:獲取日期基於月,周和一週的日期
Month : integer (01-12) |
Week of month : integer (01-05) |
Day of week : (Sunday-Saturday)
我有三個以上的參數,我想獲取日期。
例如:
假設我有01 as month 01
爲週週的一天,週五則它應該返回03-01-2014
假設:任何投入將是未來唯一的日期。
我有一個三個參數,我希望得到確切的日期。我有以下參數:PHP日期時間:獲取日期基於月,周和一週的日期
Month : integer (01-12) |
Week of month : integer (01-05) |
Day of week : (Sunday-Saturday)
我有三個以上的參數,我想獲取日期。
例如:
假設我有01 as month 01
爲週週的一天,週五則它應該返回03-01-2014
假設:任何投入將是未來唯一的日期。
使用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);
}
我敢肯定,這可以進一步擴展:
$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');
你能解釋的第一個月01和第01周,週五是如何等於2014年3月1日,該位是非常混亂 – Dale 2013-04-09 12:40:24
在這個基礎上,你將如何從這些參數中獲取YEAR? – swapnesh 2013-04-09 12:40:30
直到我記住標準的美國日期符號與世界其他地方不同時,我對你的結果感到非常困惑。您應該澄清(對於美國回答者)您的日期標記爲DD-MM-YYYY(而不是MM-DD-YYYY)。 – thelr 2013-04-09 12:45:59