我有三个参数,我想根据这些参数获取确切的日期。我有以下参数:
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');