/var/www/hkosl.com/littleark/webadmin/libraies/mtdowling/cron-expression/src/Cron/MonthField.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php

namespace Cron;

use 
DateTime;

/**
 * Month field.  Allows: * , / -
 */
class MonthField extends AbstractField
{
    public function 
isSatisfiedBy(DateTime $date$value)
    {
        
// Convert text month values to integers
        
$value str_ireplace(
            array(
                
'JAN''FEB''MAR''APR''MAY''JUN',
                
'JUL''AUG''SEP''OCT''NOV''DEC'
            
),
            
range(112),
            
$value
        
);

        return 
$this->isSatisfied($date->format('m'), $value);
    }

    public function 
increment(DateTime $date$invert false)
    {
        if (
$invert) {
            
$date->modify('last day of previous month');
            
$date->setTime(2359);
        } else {
            
$date->modify('first day of next month');
            
$date->setTime(00);
        }

        return 
$this;
    }

    public function 
validate($value)
    {
        return (bool) 
preg_match('/^[\*,\/\-0-9A-Z]+$/'$value);
    }
}