PHP類Crond時間規則演算法

2021-08-15 16:53:34 字數 1254 閱讀 6243

<?php

/** * created by phpstorm.

* user: duyue

* date: 2018/2/20

* time: 23:10

* 此類僅用於判斷給定的時間是否符合時間規則,如果符合則返回true其它業務邏輯自行處理

* 使用說明

* format = '* * * * * ';

* 本類模仿crond的規則分5個部分分別是分、時、日期、月、周(的第幾天)

* 每部分可單獨設定為乙個數,如:1 * * * * ,當分為1時 true

* 可以使用 '/' 來分開設定重複規則,如: * / 1 * * * * , 每分鐘 ; * / 2 * * * * 每兩分鐘(注意每部分之間是沒有空格的,這裡是php的注釋部分)

* 可以設定區間: 4-20/2 * * * * , 當分為4 - 20之間,並且為2的倍數時

* 可以為集合: * /5,8,10 * * * * , 當分為5,8,10時返回true,其它部分同理。

* '0 23 * * 6' 每週六的11點

* '* 23-7/1 * * * ' 每天晚上23-7點,每隔一小時

*/class crondtime

} return true;

} /**

* 檢查乙個數字是否符合

* @param $number 要檢查的數字

* @param $str 規則字元

* @return bool 符合返回true

*/private function checknumber($number,$str)

//檢查是否含有'/'

if(strpos($str,'/') === false)

if(strpos($str,'-') !== false)

}else

} /**

* 檢查3級字元

* @param $number

* @param $str

* @param bool $is_left

* @return bool

*/private function checklevel3($number,$str,$is_left = false)else

} if(strpos($str,',') !== false)

if(strpos($str,'-') !== false)

}}

這裡使用的命名空間,複製的時候稍注意一點。

PHP封裝時間類

開發中經常用到時間的一些操作,比如昨天,今天,前天,近七天,一周等等。class time if type 1 else 返回當前時間的月份 time 時間格式為時間 2018 8 21 function getmonth time type switch type return this mont...

PHP封裝時間類

開發中經常用到時間的一些操作,比如昨天,今天,前天,近七天,一周等等。class time if type 1 else 返回當前時間的月份 time 時間格式為時間 2018 8 21 function getmonth time type switch type return this mont...

PHP時間類完整例項 非常實用

class time if type 1 else 返回當前時間的月份 time 時間格式為時間戳 2013 3 27 function getmonth time type switch type return this month 返回當前時間的天數 time 時間格式為時間戳 2013 3 4...