xref: /template/strap/ComboStrap/Cron.php (revision 04fd306c7c155fa133ebb3669986875d65988276)
1c3437056SNickeau<?php
2c3437056SNickeau
3c3437056SNickeau
4c3437056SNickeaunamespace ComboStrap;
5c3437056SNickeau
6c3437056SNickeau
7c3437056SNickeauuse Cron\CronExpression;
8c3437056SNickeau
9c3437056SNickeauclass Cron
10c3437056SNickeau{
11c3437056SNickeau
12c3437056SNickeau
13c3437056SNickeau    /**
14*04fd306cSNickeau     * @throws ExceptionBadSyntax
15c3437056SNickeau     */
16c3437056SNickeau    public static function getDate(string $cronExpression): \DateTime
17c3437056SNickeau    {
18c3437056SNickeau        try {
19c3437056SNickeau            $cron = CronExpression::factory($cronExpression);
20c3437056SNickeau            return $cron->getNextRunDate();
21c3437056SNickeau        } catch (\InvalidArgumentException $e) {
22*04fd306cSNickeau            throw new ExceptionBadSyntax("The cache frequency expression ($cronExpression) is not a valid cron expression. <a href=\"https://crontab.guru/\">Validate it on this website</a>");
23c3437056SNickeau        }
24c3437056SNickeau    }
25c3437056SNickeau}
26