HCE Project DC service web UI  0.2
Hierarchical Cluster Engine DC service web UI
 All Classes Namespaces Files Functions Variables Pages
MonthField.php
Go to the documentation of this file.
1 <?php
2 
8 class MonthField extends AbstractField
9 {
13  public function isSatisfiedBy(DateTime $date, $value)
14  {
15  // Convert text month values to integers
16  $value = str_ireplace(
17  array(
18  'JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN',
19  'JUL', 'AUG', 'SEP', 'OCT', 'NOV', 'DEC',
20  ),
21  range(1, 12),
22  $value
23  );
24 
25  return $this->isSatisfied($date->format('m'), $value);
26  }
27 
31  public function increment(DateTime $date, $invert = false)
32  {
33  $year = $date->format('Y');
34  if ($invert) {
35  $month = $date->format('m') - 1;
36  if ($month < 1) {
37  $month = 12;
38  $year--;
39  }
40  $date->setDate($year, $month, 1);
41  $date->setDate($year, $month, $date->format('t'));
42  $date->setTime(23, 59, 0);
43  } else {
44  $month = $date->format('m') + 1;
45  if ($month > 12) {
46  $month = 1;
47  $year++;
48  }
49  $date->setDate($year, $month, 1);
50  $date->setTime(0, 0, 0);
51  }
52 
53  return $this;
54  }
55 
59  public function validate($value)
60  {
61  return (bool) preg_match('/[\*,\/\-0-9A-Z]+/', $value);
62  }
63 }