Code : Tout sélectionner
$idScenario="ID_DU_SCENARIO";
$varName="NOM_DE_LA_VARIABLE";
$Scenario = scenario::byId($idScenario);
$date = calculateScheduleDate($Scenario, 'd H:i');
$scenario->setData($varName, $date['nextDate']);
function calculateScheduleDate($s,$format=null) {
if($format==null){
$format = 'Y-m-d H:i:s';
}
$calculatedDate = array('prevDate' => '', 'nextDate' => '');
if (is_array($s->getSchedule())) {
$calculatedDate_tmp = array('prevDate' => '', 'nextDate' => '');
foreach ($s->getSchedule() as $schedule) {
try {
$c = new Cron\CronExpression($schedule, new Cron\FieldFactory);
$calculatedDate_tmp['prevDate'] = $c->getPreviousRunDate()->format($format);
$calculatedDate_tmp['nextDate'] = $c->getNextRunDate()->format($format);
} catch (Exception $exc) {
} catch (Error $exc) {
}
if ($calculatedDate['prevDate'] == '' || strtotime($calculatedDate['prevDate']) < strtotime($calculatedDate_tmp['prevDate'])) {
$calculatedDate['prevDate'] = $calculatedDate_tmp['prevDate'];
}
if ($calculatedDate['nextDate'] == '' || strtotime($calculatedDate['nextDate']) > strtotime($calculatedDate_tmp['nextDate'])) {
$calculatedDate['nextDate'] = $calculatedDate_tmp['nextDate'];
}
}
} else {
try {
$c = new Cron\CronExpression($s->getSchedule(), new Cron\FieldFactory);
$calculatedDate['prevDate'] = $c->getPreviousRunDate()->format($format);
$calculatedDate['nextDate'] = $c->getNextRunDate()->format($format);
} catch (Exception $exc) {
} catch (Error $exc) {
}
}
return $calculatedDate;
}