{"id":33217154,"url":"https://github.com/ajbdev/cronlingo","last_synced_at":"2026-01-30T15:13:09.778Z","repository":{"id":56943040,"uuid":"47804503","full_name":"ajbdev/cronlingo","owner":"ajbdev","description":"Express crontabs as human friendly phrases","archived":false,"fork":false,"pushed_at":"2015-12-20T00:53:46.000Z","size":612,"stargazers_count":146,"open_issues_count":0,"forks_count":4,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-10-07T13:11:00.344Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ajbdev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-12-11T04:10:59.000Z","updated_at":"2024-10-15T02:03:56.000Z","dependencies_parsed_at":"2022-08-21T02:10:21.517Z","dependency_job_id":null,"html_url":"https://github.com/ajbdev/cronlingo","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/ajbdev/cronlingo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajbdev%2Fcronlingo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajbdev%2Fcronlingo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajbdev%2Fcronlingo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajbdev%2Fcronlingo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ajbdev","download_url":"https://codeload.github.com/ajbdev/cronlingo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajbdev%2Fcronlingo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28914899,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-30T12:13:43.263Z","status":"ssl_error","status_checked_at":"2026-01-30T12:13:22.389Z","response_time":66,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-11-16T14:00:18.920Z","updated_at":"2026-01-30T15:13:09.772Z","avatar_url":"https://github.com/ajbdev.png","language":"PHP","funding_links":[],"categories":["定时任务( Crontab )","定时任务 Crontab"],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.org/ajbdev/cronlingo.png)](https://travis-ci.org/ajbdev/cronlingo)\n# CRON Lingo\n\nCronLingo turns human readable strings about time and turns them into valid crontabs. \n\nExamples:\n\n```php\necho CronLingo::fromExpression('Every day at midnight');\n// \"0 0 * * *\"\n\necho CronLingo::fromExpression('Every 15 minutes at midnight on the weekend');\n// \"*/15 0 * * 0,6\"\n\necho CronLingo::fromExpression('Every other minute in August at noon on a weekday');\n// \"*/2 12 * 8 1,2,3,4,5\"\n\necho CronLingo::fromExpression('The 1st day in April at midnight');\n// \"0 0 1 4 *\"\n\necho CronLingo::fromExpression('Every day on the weekday at 2:25pm');\n// \"25 14 * * 1,2,3,4,5\"\n```\n## Syntax\n\nCronLingo identifies the parts of a string with specific time-related keywords such as \"on, to, at\" and uses this to deduce the time meaning and convert it into part of a cron tab. It's not particular about the order of these statements.\nHere's a brief list of things that it will pick up and parse into a crontab:\n- Periods (daily, weekly, monthly)\n- Exact times (9:30 PM, 8a, 3p)\n- Meridiems (AM/PM/A/P)\n- Intervals (1st, second, other, ninth, etc)\n- Specific fields (second, minute, hour, day, month)\n- Day of week (sunday, monday, etc)\n- 12 o'clocks (noon, midnight)\n- Lists (e.g., 5 to 12 minutes)\n- Month names (january, february, etc)\n- Weekend / weekday\n\n\n## What's a cron tab?\nA cron tab is an expression that defines a recurring period of time.\n\nIt looks something like this:\n```\n*    *    *    *    *\n-    -    -    -    -\n|    |    |    |    |\n|    |    |    |    +----- day of week (0 - 7) (Sunday=0 or 7)\n|    |    |    +---------- month (1 - 12)\n|    |    +--------------- day of month (1 - 31)\n|    +-------------------- hour (0 - 23)\n+------------------------- min (0 - 59)\n```\n\nFrom [Wikipedia](https://en.wikipedia.org/wiki/Cron):\n\nThe software utility Cron is a time-based job scheduler in Unix-like computer operating systems. People who set up and maintain software environments use cron to schedule jobs (commands or shell scripts) to run periodically at fixed times, dates, or intervals. It typically automates system maintenance or administration—though its general-purpose nature makes it useful for things like connecting to the Internet and downloading email at regular intervals.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fajbdev%2Fcronlingo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fajbdev%2Fcronlingo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fajbdev%2Fcronlingo/lists"}