I believe the following are bugs in JCron 1.2. Can anyone confirm these?
CronParser.class.php :: line 208
Currently: $hour = date("h", $this->lastRan);
Should be: $hour = date("H", $this->lastRan);
Reason: 'h' is 12 hour formatted, where as 'H' is 24. Since the code in jcron.php uses 24 hour time comparisons, CronParser.class.php is returning incompatible values.
CronParser.class.php :: line 293
Currently: } while($minute >= $this->now[0]);
Should Be: } while($minute > $this->now[0]);
Reason: If $arMinutes is a single element array (which it is in my case), the inclusion of equality causes the loop to repeat twice, so that $minutes becomes null.
CronParser.class.php :: line 298
Currently: if($minute > $this->now[1] || $minute == ""

{
Should Be: if($minute == ""

{
Reason: Not sure why $minute is being compared to hour? Perhaps now[1] should have been now[0]. If that's the case, the condition is irrelevant, as it is handled in the loop above. Therefore, the only case to check is if the entire contents of $arMinutes < $minute, in which case $minute will be empty.