我有这个项目,我必须在每个星期天生成一组新的“轮班”。现在我让用户通过输入开始星期日手动完成,然后我的脚本填写直到下周六(例如:用户填写“从[6月]的[5]生成班次”然后它将会产生从6月(太阳)到6月11日(坐着)的转变。
班次生成:
function generateShifts($day_start, $month, $year)
{
global $months, $month_lengths, $days, $times, $positions;
$f = 0;
$day = $day_start;
for($i = $day_start; $i < ($day_start + 7); $i++)
{
if($day > $months[$month-1]["length"]) //are we entering a new month?
{
$day = 1;
$month++;
}
if($month > 12) //are we entering a new year?
{
$month = 1;
$year++;
}
for($p = 0; $p < count($positions); $p++)
{
for($t = 0; $t < count($times); $t++)
$sql = mysql_query("INSERT INTO `shifts` (position, day, month, year, time, full_day) VALUES ('". $positions[$p] ."', '". $day ."', '". $month ."', '". $year ."', '". $times[$t] ."', '". $days[$f] ."')");
}
$f++;
$day++;
}
}
班次具有某些属性,例如位置,日,月,年,时间(例如:上午6点至下午4点等)和唯一ID。日,月和年是数字,并且是D-M-YY格式(例如:6-6-11)。我有他们的名字的数组,简短的格式,如Jun,Jul,Aug等(所以在第6个月我会做$ month_names [$ row [“month”] - 1](-1因为数组从索引开始0,当然)那会让我“君”。
现在我想自动执行此过程,以便每周日自动生成一周的新班次。如果这是一个选项,我就不能使用cron作业。它需要是纯HTML / JS / PHP。
我不是要求完整的脚本,只是为了正确的方向。
答案 0 :(得分:0)
除非您让浏览器运行一整周,否则您将无法自动执行此操作。或者您可以在您的站点中的某个位置插入此代码,以便用户在不知道事件的情况下执行它(如果您需要在此方法中更新这些列表,请不要忘记添加检查)。
此外,您可以查找“cron job”API提供程序(站点会在所需的时间调用您的脚本)。
答案 1 :(得分:0)
如果我理解正确,你只需要每周调用一次这个函数,但这个函数的结果不太可能改变。
我可以看到多个解决方案(省略cron):
答案 2 :(得分:0)
您可以在代码中创建一种cron。
检查每个页面加载(可以忽略不计)的开销和运行该页面加载的作业的开销。