基於你正在試圖做什麼,更頻繁的cron作業運行,更準確的時間會。如果它必須每小時一次,那麼用戶在17到24之間選擇的任何內容都將每隔一小時執行一次。因此,即使提供所有這些選項也是沒有意義的。如果您必須讓用戶選擇一個數字並在一天中均勻執行,則必須比呃一小時更頻繁地運行cron作業。
這個例子假設你每分鐘運行一次cron作業,即:
*/1 * * * * <your command>
// How many times per day, get from DB
$userInput = 17;
$SecondsPerDay = 60 * 60 * 24;
$Frequency = (int) ($SecondsPerDay/$userInput) -1;
$midnight = strtotime('today midnight');
// Get an array of times to execute
$executeTimes = array();
for($time=$midnight; $time<=($midnight+$SecondsPerDay); $time+=$Frequency)
$executeTimes[] = date("g:i a", $time);
$currentTime = date("g:i a");
$execute = in_array($currentTime, $executeTimes);
if(!$execute) exit;
// Cron job codes here
這裏是一個〔實施例:https://3v4l.org/0PCXh
注:我覺得療法是關閉逐一個錯誤,但你應該從這裏獲得要點。
*用戶可以設置一個CRON作業可以開始的不同次數* - 允許用戶只選擇某些麻木ERS - 12 6,4,3.2,1。另一些惡作劇 – splash58
的問題是,用戶被允許選擇從1到24(1,2,3,4,5,6 ... 22,23任何整整數,24)。像2.5,3.2364等數字是不允許的 – Jack
這是什麼飛濺是syaing,不允許。做老闆,說不。 – Andreas