以下是将 Crontab 代码(日、周、月级别)转换为时间戳的 PHP 代码:

<?php
// Crontab代码
$cron = '0 0 1 * *';

// 分解Crontab代码
$cronArr = explode(' ', $cron);

// 获取当前时间戳
$currentTime = time();

// 计算下一个执行时间戳
$nextTime = mktime(
    $cronArr[1], // 分钟
    $cronArr[0], // 小时
    $cronArr[2], // 日
    date('n'), // 月
    '*', // 周
    date('Y') // 年
);

// 如果下一个执行时间戳小于当前时间戳,说明执行时间应该是下一个周期
if ($nextTime < $currentTime) {
    $nextTime = mktime(
        $cronArr[1], // 分钟
        $cronArr[0], // 小时
        $cronArr[2], // 日
        date('n'), // 月
        '*', // 周
        date('Y') // 年
    ) + 86400 * 28; // 加上28天的秒数,即下一个周期
}

echo $nextTime;

注:以上代码仅适用于日、周、月的 Crontab 代码,不适用于小时、分钟等更精细的 Crontab 代码。

PHP 解析 Crontab 代码为时间戳

原文地址: https://www.cveoy.top/t/topic/oYbV 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录