季节性预订系统日/月

时间:2014-11-24 13:41:29

标签: php date

我在php上有点新,并且此时已经停留了好几天,在预订问题上,$ ddate是格式为(yyyy / mm / dd)的特定日期。

list($ yyear,$ mmonth,$ dday)= explode('/',$ ddate); //这会将日期分为年月和日。 我需要它做的是当冬季或夏季的实际月份在这个日期,它预定所有星期和特定日期的所有月份。预订只是在数据库中输入,它已经可以使用了,但问题是如何让它在正确的数天保留。

$season_type='';
    if ($mmonth = 10 or 11 or 12 or 01 or 02 or 03 or 04) {
    $seson_type='Wint';

    }
    if ($mmonth = 05 or 06 or 07 or 08 or 09) {
    $seson_type='Summ';

示例:冬季是从10月到04月,所以7个月,我的预订从($ ddate)开始,在这种情况下是2014/02/03所以2014年,02月和第03天,它会星期一,我需要的是现在它在一个月内保留所有星期一(02 03 04)。我尽力解释它。对于语法上的任何错误,抱歉。我只是陷入困境,不知道如何使它发挥作用。

1 个答案:

答案 0 :(得分:0)

简单的解决方案是使用循环,在那里添加7天,直到你到达下一季:

$your_input_date = '2014/02/03';

$season = [
    'summer' => [5,6,7,8,9],
    'winter' => [10,11,12,1,2,3,4],
];
$dt = DateTime::createFromFormat('!Y/m/d', $your_input_date);
$is_winter = in_array($dt->format('n'), $season['winter']);
while (in_array($dt->format('n'), $season[$is_winter ? 'winter' : 'summer'])) {
    echo $dt->format('Y-m-d'), "\n";
    $dt->modify('+7 day');
}

demo