Php 插入日期和时间的每周信息

Php 插入日期和时间的每周信息,php,Php,我有一个函数,它接受一集的日期、时间和出现次数。我正在使用while循环来尝试在每周的同一天和同一时间插入和播放一集。例如,如果这一集是周一晚上7点,我想为每周一晚上7点插入给定的事件数 以下是我的代码和while循环: $sEpsAirDate = strtotime($aVars['air_date'].' '.$aVars['air_time'].$aVars['air_ampm']); $i = 1; while ($i <= $

我有一个函数,它接受一集的日期、时间和出现次数。我正在使用while循环来尝试在每周的同一天和同一时间插入和播放一集。例如,如果这一集是周一晚上7点,我想为每周一晚上7点插入给定的事件数

以下是我的代码和while循环:

$sEpsAirDate =  strtotime($aVars['air_date'].' '.$aVars['air_time'].$aVars['air_ampm']);

            $i = 1;
            while ($i <= $aVars['repeat_count']) {

                $sEpsAirDate =  // How can I alter this variable to change the date to every week?                      

                db_res(
                    "INSERT INTO `hm_episodes_main` SET 
                        `show_id` = '{$aVars['show_id']}',
                        `title` = '{$sEpsTitle}.{$i}',
                        `season` = '{$aVars['eps_season']}',
                        `uri` = '{$sUri}.{$i}',
                        `desc` = '{$sEpsDesc}',
                        `air_date` = '{$sEpsAirDate}'
                ");

                $i++ 
            }
$sEpsAirDate=strotime($aVars['air\u date'..'。$aVars['air\u time'.].$aVars['air\u ampm']);
$i=1;

而($i我想到的第一个想法就是在循环中的每次迭代中,将一周中的秒数添加到sEpsAirDate中:

$sEpsAirDate += 604800;
如果需要保留首次播出日期,可以将其复制到单独的变量中,然后执行类似操作(将LCV$i更改为从0开始):

但是,这种方法可能会在夏令时方面产生问题……因此,将日期分解为年、月和日变量,然后在每次循环迭代中通过将($i*7)添加到日来重新创建$sEpsAirDate可能更安全……因此类似于(再次将LCV$i更改为从0开始):

使用
mktime()

“Init”通过为第一集的日期、月份和年份设置相应的变量,然后您可以通过向
mktime
中的day参数添加7的增量来为接下来的几周创建新日期(如上所示)

然后将输出格式化为SQL,如下所示:

$datetime_str = date("Y-m-d H:i:s", $next_ep_timestamp);
//gives a date-str like '2011-10-16 12:59:01'
$sEpsAirDate = mktime($sEpsAirDateHour, $sEpsAirDateMinute, 0, $sEpsAirDateMonth, $sEpsAirDateDay+($i*7), $sEpsAirDateYear);
$next_ep_timestamp = mktime ($hour,$min,$sec, $first_ep_month, $first_ep_day + 7 * $weekcount, $first_ep_year);
$datetime_str = date("Y-m-d H:i:s", $next_ep_timestamp);
//gives a date-str like '2011-10-16 12:59:01'