yukabuki / cron-expression-explainer
Human-readable cron expressions (Fork with French translation)
Package info
github.com/yukabuki/cron-expression-explainer
pkg:composer/yukabuki/cron-expression-explainer
2.0.3
2026-02-24 09:58 UTC
Requires
- php: >=8.0
- dragonmantank/cron-expression: ^3.3.0
- symfony/intl: ^5.4.35|^6.4.3|^7.0.3
Requires (Dev)
- brianium/paratest: ^6.3.0
- infection/infection: ^0.26.0|^0.27.0|^0.28.0|^0.29.0
- nette/utils: ^3.1.0|^4.0.0
- orisai/coding-standard: ^3.0.0
- phpstan/extension-installer: ^1.0.0
- phpstan/phpstan: ^2.0.0
- phpstan/phpstan-deprecation-rules: ^2.0.0
- phpstan/phpstan-phpunit: ^2.0.0
- phpstan/phpstan-strict-rules: ^2.0.0
- phpunit/phpunit: ^9.5.0
README
Cron Expression Explainer
Human-readable cron expressions (custom translations support)
π Check out our documentation.
π¨ Custom Translations Guide - Learn how to add your own translations!
π Original project by Orisai
use Yukabuki\CronExpressionExplainer\DefaultCronExpressionExplainer; $explainer = new DefaultCronExpressionExplainer(); $explainer->explain('* * * * *'); // At every minute. $explainer->explain('*/30 * * * *'); // At every 30th minute. $explainer->explain('@daily'); // At 00:00. $explainer->explain('* * 1 * 1'); // At every minute on day-of-month 1 and on every Monday. $explainer->explain('0 22 * 12 *'); // At 22:00 in December. $explainer->explain('0 8-18 * * *'); // At minute 0 past every hour from 8 through 18. $explainer->explain('0 8-18/2 * * *'); // At minute 0 past every 2nd hour from 8 through 18. $explainer->explain('0 8,12,16 * * *'); // At minute 0 past hour 8, 12 and 16. $explainer->explain('* * 1 2 *'); // At every minute on 1st of February. $explainer->explain('* * * * SUN#2'); // At every minute on 2nd Sunday. $explainer->explain('* * 15W * *'); // At every minute on a weekday closest to the 15th. $explainer->explain('* * L * *'); // At every minute on a last day-of-month. $explainer->explain('* * LW * *'); // At every minute on a last weekday. $explainer->explain('* * * * 7L'); // At every minute on the last Sunday.
β¨ New Features in This Fork
π Automatic Locale Detection
Locales are automatically detected by scanning the translations directory - no hardcoded lists!
$locales = $explainer->getSupportedLocales(); // Automatically finds: cs, en, fr, sk
π Custom Translation Support
Add your own translations or override existing ones:
// Add a directory with custom translations $explainer->addTranslationPath('/path/to/custom/translations'); // Use your custom locale $explainer->explain('* * * * *', null, null, 'es'); // Spanish $explainer->explain('* * * * *', null, null, 'de'); // German
See CUSTOM_TRANSLATIONS.md for detailed guide and examples.