我希望能够提出一个接受参数的php函数 年,月和日,并在数组中返回给定日期的日期。
例如。让我们说这个函数看起来像这样:
function get_dates($month, $year, $day)
{
....
}
如果我按以下方式调用该函数:
get_dates(12, 2011, 'Sun');
我应该得到一个包含值的数组:
2011-12-04
2011-12-11
2011-12-18
2011-12-25
功能代码是什么样的?
答案 0 :(得分:1)
例如,您可能想要找出每月1日的工作日,这将有助于您获得第一个星期日(或者您正在寻找的任何一天),然后您将以7天为增量直到月份结束了。
答案 1 :(得分:1)
以下是样本
function getSundays($y,$m){
$date = "$y-$m-01";
$first_day = date('N',strtotime($date));
$first_day = 7 - $first_day + 1;
$last_day = date('t',strtotime($date));
$days = array();
for($i=$first_day; $i<=$last_day; $i=$i+7 ){
$days[] = $i;
}
return $days;
}
$days = getSundays(2016,04);
print_r($days);
答案 2 :(得分:0)
这是上面功能的变体。在这里,您可以选择显示月份中的哪些日期。例如,您要显示2019年1月的所有星期二。
/*
* @desc Funtion return array of dates. Array contains dates for custom
* days in week.
* @input integer $year
* @input integer $month - Month order number (1-12)
* @input integer $dayOrderNumber - Monday is 1, Tuesday is 2 and Sunday is 7.
* @return array $customDaysDates - Array of custom day's dates.
*/
function getCustomDaysDatesInMonth($year,$month,$dayOrderNumber){
$date = "$year-$month-01";
$firstDayInMonth = (integer) date('N',strtotime($date));
$theFirstCustomDay = ( 7 - $firstDayInMonth + $dayOrderNumber)%7 + 1;
$lastDayInMonth = (integer) date('t',strtotime($date));
$customDaysDates = [];
for($i=$theFirstCustomDay; $i<=$lastDayInMonth; $i=$i+7 ){
$customDaysDates[] = $i;
}
return $customDaysDates;
}
$days = getCustomDaysDatesInMonth(2019,1, 2);
print_r($days);
输出应为:
Array ( [0] => 1 [1] => 8 [2] => 15 [3] => 22 [4] => 29 )
这意味着2019年1月1日,8月,15日,22日和29日为星期二。