1 | <?php |
||||
2 | /* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */ |
||||
3 | |||||
4 | /** |
||||
5 | * Contains the Calendar and Calendar_Engine_Factory classes |
||||
6 | * |
||||
7 | * PHP versions 4 and 5 |
||||
8 | * |
||||
9 | * LICENSE: Redistribution and use in source and binary forms, with or without |
||||
10 | * modification, are permitted provided that the following conditions are met: |
||||
11 | * 1. Redistributions of source code must retain the above copyright |
||||
12 | * notice, this list of conditions and the following disclaimer. |
||||
13 | * 2. Redistributions in binary form must reproduce the above copyright |
||||
14 | * notice, this list of conditions and the following disclaimer in the |
||||
15 | * documentation and/or other materials provided with the distribution. |
||||
16 | * 3. The name of the author may not be used to endorse or promote products |
||||
17 | * derived from this software without specific prior written permission. |
||||
18 | * |
||||
19 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED |
||||
20 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
||||
21 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
||||
22 | * IN NO EVENT SHALL THE FREEBSD PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY |
||||
23 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
||||
24 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
||||
25 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
||||
26 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
||||
27 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
||||
28 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
||||
29 | * |
||||
30 | * @category Date and Time |
||||
31 | * @package Calendar |
||||
32 | * @author Harry Fuecks <[email protected]> |
||||
33 | * @author Lorenzo Alberton <[email protected]> |
||||
34 | * @copyright 2003-2007 Harry Fuecks, Lorenzo Alberton |
||||
35 | * @license http://www.debian.org/misc/bsd.license BSD License (3 Clause) |
||||
36 | * @version CVS: $Id$ |
||||
37 | * @link http://pear.php.net/package/Calendar |
||||
38 | */ |
||||
39 | namespace PEAR\Calendar; |
||||
40 | |||||
41 | /** |
||||
42 | * Allows Calendar include path to be redefined |
||||
43 | */ |
||||
44 | if (!defined('CALENDAR_ROOT')) { |
||||
45 | define('CALENDAR_ROOT', 'Calendar'.DIRECTORY_SEPARATOR); |
||||
46 | } |
||||
47 | |||||
48 | /** |
||||
49 | * Constant which defines the calculation engine to use |
||||
50 | */ |
||||
51 | if (!defined('CALENDAR_ENGINE')) { |
||||
52 | define('CALENDAR_ENGINE', 'UnixTS'); |
||||
53 | } |
||||
54 | |||||
55 | /** |
||||
56 | * Define Calendar Month states |
||||
57 | */ |
||||
58 | define('CALENDAR_USE_MONTH', 1); |
||||
59 | define('CALENDAR_USE_MONTH_WEEKDAYS', 2); |
||||
60 | define('CALENDAR_USE_MONTH_WEEKS', 3); |
||||
61 | |||||
62 | /** |
||||
63 | * Contains a factory method to return a Singleton instance of a class |
||||
64 | * implementing the Calendar_Engine_Interface.<br> |
||||
65 | * <b>Note:</b> this class must be modified to "register" alternative |
||||
66 | * Calendar_Engines. The engine used can be controlled with the constant |
||||
67 | * CALENDAR_ENGINE |
||||
68 | * |
||||
69 | * @category Date and Time |
||||
70 | * @package Calendar |
||||
71 | * @author Harry Fuecks <[email protected]> |
||||
72 | * @author Lorenzo Alberton <[email protected]> |
||||
73 | * @copyright 2003-2007 Harry Fuecks, Lorenzo Alberton |
||||
74 | * @license http://www.debian.org/misc/bsd.license BSD License (3 Clause) |
||||
75 | * @link http://pear.php.net/package/Calendar |
||||
76 | * @see CalendarEngineInterface |
||||
77 | * @access protected |
||||
78 | */ |
||||
79 | class Calendar_Engine_Factory |
||||
80 | { |
||||
81 | /** |
||||
82 | * Returns an instance of the engine |
||||
83 | * |
||||
84 | * @return object instance of a calendar calculation engine |
||||
85 | * @access public |
||||
86 | */ |
||||
87 | static public function & getEngine() |
||||
88 | { |
||||
89 | static $engine = false; |
||||
90 | switch (CALENDAR_ENGINE) { |
||||
91 | case 'PearDate': |
||||
92 | $class = 'Calendar_Engine_PearDate'; |
||||
93 | break; |
||||
94 | case 'UnixTS': |
||||
95 | default: |
||||
96 | $class = 'PEAR\Calendar\Engine\UnixTS'; |
||||
97 | break; |
||||
98 | } |
||||
99 | if (!$engine) { |
||||
100 | if (!class_exists($class)) { |
||||
101 | include_once CALENDAR_ROOT.'Engine'.DIRECTORY_SEPARATOR.CALENDAR_ENGINE.'.php'; |
||||
102 | } |
||||
103 | $engine = new $class; |
||||
104 | } |
||||
105 | return $engine; |
||||
106 | } |
||||
107 | } |
||||
108 | |||||
109 | /** |
||||
110 | * Base class for Calendar API. This class should not be instantiated directly. |
||||
111 | * |
||||
112 | * @category Date and Time |
||||
113 | * @package Calendar |
||||
114 | * @author Harry Fuecks <[email protected]> |
||||
115 | * @author Lorenzo Alberton <[email protected]> |
||||
116 | * @copyright 2003-2007 Harry Fuecks, Lorenzo Alberton |
||||
117 | * @license http://www.debian.org/misc/bsd.license BSD License (3 Clause) |
||||
118 | * @link http://pear.php.net/package/Calendar |
||||
119 | * @abstract |
||||
120 | */ |
||||
121 | class Calendar |
||||
122 | { |
||||
123 | /** |
||||
124 | * Instance of class implementing calendar engine interface |
||||
125 | * @var object |
||||
126 | * @access private |
||||
127 | */ |
||||
128 | var $cE; |
||||
129 | |||||
130 | /** |
||||
131 | * Instance of Calendar_Validator (lazy initialized when isValid() or |
||||
132 | * getValidor() is called |
||||
133 | * @var Validator |
||||
134 | * @access private |
||||
135 | */ |
||||
136 | var $validator; |
||||
137 | |||||
138 | /** |
||||
139 | * Year for this calendar object e.g. 2003 |
||||
140 | * @access private |
||||
141 | * @var int |
||||
142 | */ |
||||
143 | var $year; |
||||
144 | |||||
145 | /** |
||||
146 | * Month for this calendar object e.g. 9 |
||||
147 | * @access private |
||||
148 | * @var int |
||||
149 | */ |
||||
150 | var $month; |
||||
151 | |||||
152 | /** |
||||
153 | * Day of month for this calendar object e.g. 23 |
||||
154 | * @access private |
||||
155 | * @var int |
||||
156 | */ |
||||
157 | var $day; |
||||
158 | |||||
159 | /** |
||||
160 | * Hour of day for this calendar object e.g. 13 |
||||
161 | * @access private |
||||
162 | * @var int |
||||
163 | */ |
||||
164 | var $hour; |
||||
165 | |||||
166 | /** |
||||
167 | * Minute of hour this calendar object e.g. 46 |
||||
168 | * @access private |
||||
169 | * @var int |
||||
170 | */ |
||||
171 | var $minute; |
||||
172 | |||||
173 | /** |
||||
174 | * Second of minute this calendar object e.g. 34 |
||||
175 | * @access private |
||||
176 | * @var int |
||||
177 | */ |
||||
178 | var $second; |
||||
179 | |||||
180 | /** |
||||
181 | * Marks this calendar object as selected (e.g. 'today') |
||||
182 | * @access private |
||||
183 | * @var boolean |
||||
184 | */ |
||||
185 | var $selected = false; |
||||
186 | |||||
187 | /** |
||||
188 | * Collection of child calendar objects created from subclasses |
||||
189 | * of Calendar. Type depends on the object which created them. |
||||
190 | * @access private |
||||
191 | * @var array |
||||
192 | */ |
||||
193 | var $children = array(); |
||||
194 | |||||
195 | /** |
||||
196 | * Constructs the Calendar |
||||
197 | * |
||||
198 | * @param int $y year |
||||
199 | * @param int $m month |
||||
200 | * @param int $d day |
||||
201 | * @param int $h hour |
||||
202 | * @param int $i minute |
||||
203 | * @param int $s second |
||||
204 | * |
||||
205 | * @access protected |
||||
206 | */ |
||||
207 | function __construct($y = 2000, $m = 1, $d = 1, $h = 0, $i = 0, $s = 0) |
||||
0 ignored issues
–
show
|
|||||
208 | { |
||||
209 | static $cE = null; |
||||
210 | if (!isset($cE)) { |
||||
211 | $cE = & Calendar_Engine_Factory::getEngine(); |
||||
212 | } |
||||
213 | $this->cE = & $cE; |
||||
214 | $this->year = (int)$y; |
||||
215 | $this->month = (int)$m; |
||||
216 | $this->day = (int)$d; |
||||
217 | $this->hour = (int)$h; |
||||
218 | $this->minute = (int)$i; |
||||
219 | $this->second = (int)$s; |
||||
220 | } |
||||
221 | |||||
222 | /** |
||||
223 | * Defines the calendar by a timestamp (Unix or ISO-8601), replacing values |
||||
224 | * passed to the constructor |
||||
225 | * |
||||
226 | * @param int|string $ts Unix or ISO-8601 timestamp |
||||
227 | * |
||||
228 | * @return void |
||||
229 | * @access public |
||||
230 | */ |
||||
231 | function setTimestamp($ts) |
||||
0 ignored issues
–
show
|
|||||
232 | { |
||||
233 | $this->year = $this->cE->stampToYear($ts); |
||||
234 | $this->month = $this->cE->stampToMonth($ts); |
||||
235 | $this->day = $this->cE->stampToDay($ts); |
||||
236 | $this->hour = $this->cE->stampToHour($ts); |
||||
237 | $this->minute = $this->cE->stampToMinute($ts); |
||||
238 | $this->second = $this->cE->stampToSecond($ts); |
||||
239 | } |
||||
240 | |||||
241 | /** |
||||
242 | * Returns a timestamp from the current date / time values. Format of |
||||
243 | * timestamp depends on Calendar_Engine implementation being used |
||||
244 | * |
||||
245 | * @return int|string timestamp |
||||
246 | * @access public |
||||
247 | */ |
||||
248 | function getTimestamp() |
||||
0 ignored issues
–
show
|
|||||
249 | { |
||||
250 | return $this->cE->dateToStamp( |
||||
251 | $this->year, $this->month, $this->day, |
||||
252 | $this->hour, $this->minute, $this->second); |
||||
253 | } |
||||
254 | |||||
255 | /** |
||||
256 | * Defines calendar object as selected (e.g. for today) |
||||
257 | * |
||||
258 | * @param boolean $state whether Calendar subclass |
||||
259 | * |
||||
260 | * @return void |
||||
261 | * @access public |
||||
262 | */ |
||||
263 | function setSelected($state = true) |
||||
0 ignored issues
–
show
|
|||||
264 | { |
||||
265 | $this->selected = $state; |
||||
266 | } |
||||
267 | |||||
268 | /** |
||||
269 | * True if the calendar subclass object is selected (e.g. today) |
||||
270 | * |
||||
271 | * @return boolean |
||||
272 | * @access public |
||||
273 | */ |
||||
274 | function isSelected() |
||||
0 ignored issues
–
show
|
|||||
275 | { |
||||
276 | return $this->selected; |
||||
277 | } |
||||
278 | |||||
279 | /** |
||||
280 | * Checks if the current Calendar object is today's date |
||||
281 | * |
||||
282 | * @return boolean |
||||
283 | * @access public |
||||
284 | */ |
||||
285 | function isToday() |
||||
0 ignored issues
–
show
|
|||||
286 | { |
||||
287 | return $this->cE->isToday($this->getTimeStamp()); |
||||
288 | } |
||||
289 | |||||
290 | /** |
||||
291 | * Adjusts the date (helper method) |
||||
292 | * |
||||
293 | * @return void |
||||
294 | * @access public |
||||
295 | */ |
||||
296 | function adjust() |
||||
0 ignored issues
–
show
|
|||||
297 | { |
||||
298 | $stamp = $this->getTimeStamp(); |
||||
299 | $this->year = $this->cE->stampToYear($stamp); |
||||
300 | $this->month = $this->cE->stampToMonth($stamp); |
||||
301 | $this->day = $this->cE->stampToDay($stamp); |
||||
302 | $this->hour = $this->cE->stampToHour($stamp); |
||||
303 | $this->minute = $this->cE->stampToMinute($stamp); |
||||
304 | $this->second = $this->cE->stampToSecond($stamp); |
||||
305 | } |
||||
306 | |||||
307 | /** |
||||
308 | * Returns the date as an associative array (helper method) |
||||
309 | * |
||||
310 | * @param mixed $stamp timestamp (leave empty for current timestamp) |
||||
311 | * |
||||
312 | * @return array |
||||
313 | * @access public |
||||
314 | */ |
||||
315 | function toArray($stamp=null) |
||||
0 ignored issues
–
show
|
|||||
316 | { |
||||
317 | if (is_null($stamp)) { |
||||
318 | $stamp = $this->getTimeStamp(); |
||||
319 | } |
||||
320 | return array( |
||||
321 | 'year' => $this->cE->stampToYear($stamp), |
||||
322 | 'month' => $this->cE->stampToMonth($stamp), |
||||
323 | 'day' => $this->cE->stampToDay($stamp), |
||||
324 | 'hour' => $this->cE->stampToHour($stamp), |
||||
325 | 'minute' => $this->cE->stampToMinute($stamp), |
||||
326 | 'second' => $this->cE->stampToSecond($stamp) |
||||
327 | ); |
||||
328 | } |
||||
329 | |||||
330 | /** |
||||
331 | * Returns the value as an associative array (helper method) |
||||
332 | * |
||||
333 | * @param string $returnType type of date object that return value represents |
||||
334 | * @param string $format ['int' | 'array' | 'timestamp' | 'object'] |
||||
335 | * @param mixed $stamp timestamp (depending on Calendar engine being used) |
||||
336 | * @param int $default default value (i.e. give me the answer quick) |
||||
337 | * |
||||
338 | * @return mixed |
||||
339 | * @access private |
||||
340 | */ |
||||
341 | function returnValue($returnType, $format, $stamp, $default) |
||||
0 ignored issues
–
show
|
|||||
342 | { |
||||
343 | switch (strtolower($format)) { |
||||
344 | case 'int': |
||||
345 | return $default; |
||||
346 | case 'array': |
||||
347 | return $this->toArray($stamp); |
||||
348 | break; |
||||
0 ignored issues
–
show
break is not strictly necessary here and could be removed.
The switch ($x) {
case 1:
return 'foo';
break; // This break is not necessary and can be left off.
}
If you would like to keep this construct to be consistent with other ![]() |
|||||
349 | case 'object': |
||||
350 | return Factory::createByTimestamp($returnType, $stamp); |
||||
0 ignored issues
–
show
The method
PEAR\Calendar\Factory::createByTimestamp() is not static, but was called statically.
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
![]() |
|||||
351 | break; |
||||
352 | case 'timestamp': |
||||
353 | default: |
||||
354 | return $stamp; |
||||
355 | break; |
||||
356 | } |
||||
357 | } |
||||
358 | |||||
359 | /** |
||||
360 | * Abstract method for building the children of a calendar object. |
||||
361 | * Implemented by Calendar subclasses |
||||
362 | * |
||||
363 | * @param array $sDates array containing Calendar objects to select (optional) |
||||
364 | * |
||||
365 | * @return boolean |
||||
366 | * @access public |
||||
367 | * @abstract |
||||
368 | */ |
||||
369 | function build($sDates = array()) |
||||
0 ignored issues
–
show
The parameter
$sDates is not used and could be removed.
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
This check looks for parameters that have been defined for a function or method, but which are not used in the method body. ![]() |
|||||
370 | { |
||||
371 | include_once 'PEAR.php'; |
||||
372 | PEAR::raiseError('Calendar::build is abstract', null, PEAR_ERROR_TRIGGER, |
||||
0 ignored issues
–
show
The type
PEAR\Calendar\PEAR was not found. Maybe you did not declare it correctly or list all dependencies?
The issue could also be caused by a filter entry in the build configuration.
If the path has been excluded in your configuration, e.g. filter:
dependency_paths: ["lib/*"]
For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths ![]() |
|||||
373 | E_USER_NOTICE, 'Calendar::build()'); |
||||
374 | return false; |
||||
375 | } |
||||
376 | |||||
377 | /** |
||||
378 | * Abstract method for selected data objects called from build |
||||
379 | * |
||||
380 | * @param array $sDates array of Calendar objects to select |
||||
381 | * |
||||
382 | * @return boolean |
||||
383 | * @access public |
||||
384 | * @abstract |
||||
385 | */ |
||||
386 | function setSelection($sDates) |
||||
0 ignored issues
–
show
The parameter
$sDates is not used and could be removed.
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
This check looks for parameters that have been defined for a function or method, but which are not used in the method body. ![]() |
|||||
387 | { |
||||
388 | include_once 'PEAR.php'; |
||||
389 | PEAR::raiseError( |
||||
390 | 'Calendar::setSelection is abstract', null, PEAR_ERROR_TRIGGER, |
||||
0 ignored issues
–
show
|
|||||
391 | E_USER_NOTICE, 'Calendar::setSelection()'); |
||||
392 | return false; |
||||
393 | } |
||||
394 | |||||
395 | /** |
||||
396 | * Iterator method for fetching child Calendar subclass objects |
||||
397 | * (e.g. a minute from an hour object). On reaching the end of |
||||
398 | * the collection, returns false and resets the collection for |
||||
399 | * further iteratations. |
||||
400 | * |
||||
401 | * @return mixed either an object subclass of Calendar or false |
||||
402 | * @access public |
||||
403 | */ |
||||
404 | function fetch() |
||||
0 ignored issues
–
show
|
|||||
405 | { |
||||
406 | $child = each($this->children); |
||||
0 ignored issues
–
show
The function
each() has been deprecated: 7.2
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
This function has been deprecated. The supplier of the function has supplied an explanatory message. The explanatory message should give you some clue as to whether and when the function will be removed and what other function to use instead. ![]() |
|||||
407 | if ($child) { |
||||
0 ignored issues
–
show
The expression
$child of type array is implicitly converted to a boolean; are you sure this is intended? If so, consider using ! empty($expr) instead to make it clear that you intend to check for an array without elements.
This check marks implicit conversions of arrays to boolean values in a comparison. While in PHP an empty array is considered to be equal (but not identical) to false, this is not always apparent. Consider making the comparison explicit by using ![]() |
|||||
408 | return $child['value']; |
||||
409 | } else { |
||||
410 | reset($this->children); |
||||
411 | return false; |
||||
412 | } |
||||
413 | } |
||||
414 | |||||
415 | /** |
||||
416 | * Fetches all child from the current collection of children |
||||
417 | * |
||||
418 | * @return array |
||||
419 | * @access public |
||||
420 | */ |
||||
421 | function fetchAll() |
||||
0 ignored issues
–
show
|
|||||
422 | { |
||||
423 | return $this->children; |
||||
424 | } |
||||
425 | |||||
426 | /** |
||||
427 | * Get the number Calendar subclass objects stored in the internal collection |
||||
428 | * |
||||
429 | * @return int |
||||
430 | * @access public |
||||
431 | */ |
||||
432 | function size() |
||||
0 ignored issues
–
show
|
|||||
433 | { |
||||
434 | return count($this->children); |
||||
435 | } |
||||
436 | |||||
437 | /** |
||||
438 | * Determine whether this date is valid, with the bounds determined by |
||||
439 | * the Calendar_Engine. The call is passed on to Calendar_Validator::isValid |
||||
440 | * |
||||
441 | * @return boolean |
||||
442 | * @access public |
||||
443 | */ |
||||
444 | function isValid() |
||||
0 ignored issues
–
show
|
|||||
445 | { |
||||
446 | $validator = & $this->getValidator(); |
||||
447 | return $validator->isValid(); |
||||
448 | } |
||||
449 | |||||
450 | /** |
||||
451 | * Returns an instance of Calendar_Validator |
||||
452 | * |
||||
453 | * @return Validator |
||||
454 | * @access public |
||||
455 | */ |
||||
456 | function & getValidator() |
||||
457 | { |
||||
458 | if (!isset($this->validator)) { |
||||
459 | $this->validator = new Validator($this); |
||||
460 | } |
||||
461 | return $this->validator; |
||||
462 | } |
||||
463 | |||||
464 | /** |
||||
465 | * Returns a reference to the current Calendar_Engine being used. Useful |
||||
466 | * for Calendar_Table_Helper and Calendar_Validator |
||||
467 | * |
||||
468 | * @return object implementing Calendar_Engine_Inteface |
||||
469 | * @access protected |
||||
470 | */ |
||||
471 | function & getEngine() |
||||
472 | { |
||||
473 | return $this->cE; |
||||
474 | } |
||||
475 | |||||
476 | /** |
||||
477 | * Set the CALENDAR_FIRST_DAY_OF_WEEK constant to the $firstDay value |
||||
478 | * if the constant is not set yet. |
||||
479 | * |
||||
480 | * @param integer $firstDay first day of the week (0=sunday, 1=monday, ...) |
||||
481 | * |
||||
482 | * @return integer |
||||
483 | * @throws E_USER_WARNING this method throws a WARNING if the |
||||
484 | * CALENDAR_FIRST_DAY_OF_WEEK constant is already defined and |
||||
485 | * the $firstDay parameter is set to a different value |
||||
486 | * @access protected |
||||
487 | */ |
||||
488 | function defineFirstDayOfWeek($firstDay = null) |
||||
0 ignored issues
–
show
|
|||||
489 | { |
||||
490 | if (defined('CALENDAR_FIRST_DAY_OF_WEEK')) { |
||||
491 | if (!is_null($firstDay) && ($firstDay != CALENDAR_FIRST_DAY_OF_WEEK)) { |
||||
492 | $msg = 'CALENDAR_FIRST_DAY_OF_WEEK constant already defined.' |
||||
493 | .' The $firstDay parameter will be ignored.'; |
||||
494 | trigger_error($msg, E_USER_WARNING); |
||||
495 | } |
||||
496 | return CALENDAR_FIRST_DAY_OF_WEEK; |
||||
497 | } |
||||
498 | if (is_null($firstDay)) { |
||||
499 | $firstDay = $this->cE->getFirstDayOfWeek( |
||||
500 | $this->thisYear(), |
||||
501 | $this->thisMonth(), |
||||
502 | $this->thisDay() |
||||
503 | ); |
||||
504 | } |
||||
505 | define ('CALENDAR_FIRST_DAY_OF_WEEK', $firstDay); |
||||
506 | return CALENDAR_FIRST_DAY_OF_WEEK; |
||||
507 | } |
||||
508 | |||||
509 | /** |
||||
510 | * Returns the value for the previous year |
||||
511 | * |
||||
512 | * @param string $format return value format ['int'|'timestamp'|'object'|'array'] |
||||
513 | * |
||||
514 | * @return int e.g. 2002 or timestamp |
||||
515 | * @access public |
||||
516 | */ |
||||
517 | function prevYear($format = 'int') |
||||
0 ignored issues
–
show
|
|||||
518 | { |
||||
519 | $ts = $this->cE->dateToStamp($this->year-1, 1, 1, 0, 0, 0); |
||||
520 | return $this->returnValue('Year', $format, $ts, $this->year-1); |
||||
0 ignored issues
–
show
|
|||||
521 | } |
||||
522 | |||||
523 | /** |
||||
524 | * Returns the value for this year |
||||
525 | * |
||||
526 | * @param string $format return value format ['int'|'timestamp'|'object'|'array'] |
||||
527 | * |
||||
528 | * @return int e.g. 2003 or timestamp |
||||
529 | * @access public |
||||
530 | */ |
||||
531 | function thisYear($format = 'int') |
||||
0 ignored issues
–
show
|
|||||
532 | { |
||||
533 | $ts = $this->cE->dateToStamp($this->year, 1, 1, 0, 0, 0); |
||||
534 | return $this->returnValue('Year', $format, $ts, $this->year); |
||||
0 ignored issues
–
show
|
|||||
535 | } |
||||
536 | |||||
537 | /** |
||||
538 | * Returns the value for next year |
||||
539 | * |
||||
540 | * @param string $format return value format ['int'|'timestamp'|'object'|'array'] |
||||
541 | * |
||||
542 | * @return int e.g. 2004 or timestamp |
||||
543 | * @access public |
||||
544 | */ |
||||
545 | function nextYear($format = 'int') |
||||
0 ignored issues
–
show
|
|||||
546 | { |
||||
547 | $ts = $this->cE->dateToStamp($this->year+1, 1, 1, 0, 0, 0); |
||||
548 | return $this->returnValue('Year', $format, $ts, $this->year+1); |
||||
0 ignored issues
–
show
|
|||||
549 | } |
||||
550 | |||||
551 | /** |
||||
552 | * Returns the value for the previous month |
||||
553 | * |
||||
554 | * @param string $format return value format ['int'|'timestamp'|'object'|'array'] |
||||
555 | * |
||||
556 | * @return int e.g. 4 or Unix timestamp |
||||
557 | * @access public |
||||
558 | */ |
||||
559 | function prevMonth($format = 'int') |
||||
0 ignored issues
–
show
|
|||||
560 | { |
||||
561 | $ts = $this->cE->dateToStamp($this->year, $this->month-1, 1, 0, 0, 0); |
||||
562 | return $this->returnValue('Month', $format, $ts, $this->cE->stampToMonth($ts)); |
||||
0 ignored issues
–
show
|
|||||
563 | } |
||||
564 | |||||
565 | /** |
||||
566 | * Returns the value for this month |
||||
567 | * |
||||
568 | * @param string $format return value format ['int'|'timestamp'|'object'|'array'] |
||||
569 | * |
||||
570 | * @return int e.g. 5 or timestamp |
||||
571 | * @access public |
||||
572 | */ |
||||
573 | function thisMonth($format = 'int') |
||||
0 ignored issues
–
show
|
|||||
574 | { |
||||
575 | $ts = $this->cE->dateToStamp($this->year, $this->month, 1, 0, 0, 0); |
||||
576 | return $this->returnValue('Month', $format, $ts, $this->month); |
||||
0 ignored issues
–
show
|
|||||
577 | } |
||||
578 | |||||
579 | /** |
||||
580 | * Returns the value for next month |
||||
581 | * |
||||
582 | * @param string $format return value format ['int'|'timestamp'|'object'|'array'] |
||||
583 | * |
||||
584 | * @return int e.g. 6 or timestamp |
||||
585 | * @access public |
||||
586 | */ |
||||
587 | function nextMonth($format = 'int') |
||||
0 ignored issues
–
show
|
|||||
588 | { |
||||
589 | $ts = $this->cE->dateToStamp($this->year, $this->month+1, 1, 0, 0, 0); |
||||
590 | return $this->returnValue('Month', $format, $ts, $this->cE->stampToMonth($ts)); |
||||
0 ignored issues
–
show
|
|||||
591 | } |
||||
592 | |||||
593 | /** |
||||
594 | * Returns the value for the previous day |
||||
595 | * |
||||
596 | * @param string $format return value format ['int'|'timestamp'|'object'|'array'] |
||||
597 | * |
||||
598 | * @return int e.g. 10 or timestamp |
||||
599 | * @access public |
||||
600 | */ |
||||
601 | function prevDay($format = 'int') |
||||
0 ignored issues
–
show
|
|||||
602 | { |
||||
603 | $ts = $this->cE->dateToStamp( |
||||
604 | $this->year, $this->month, $this->day-1, 0, 0, 0); |
||||
605 | return $this->returnValue('Day', $format, $ts, $this->cE->stampToDay($ts)); |
||||
0 ignored issues
–
show
|
|||||
606 | } |
||||
607 | |||||
608 | /** |
||||
609 | * Returns the value for this day |
||||
610 | * |
||||
611 | * @param string $format return value format ['int'|'timestamp'|'object'|'array'] |
||||
612 | * |
||||
613 | * @return int e.g. 11 or timestamp |
||||
614 | * @access public |
||||
615 | */ |
||||
616 | function thisDay($format = 'int') |
||||
0 ignored issues
–
show
|
|||||
617 | { |
||||
618 | $ts = $this->cE->dateToStamp( |
||||
619 | $this->year, $this->month, $this->day, 0, 0, 0); |
||||
620 | return $this->returnValue('Day', $format, $ts, $this->day); |
||||
0 ignored issues
–
show
|
|||||
621 | } |
||||
622 | |||||
623 | /** |
||||
624 | * Returns the value for the next day |
||||
625 | * |
||||
626 | * @param string $format return value format ['int'|'timestamp'|'object'|'array'] |
||||
627 | * |
||||
628 | * @return int e.g. 12 or timestamp |
||||
629 | * @access public |
||||
630 | */ |
||||
631 | function nextDay($format = 'int') |
||||
0 ignored issues
–
show
|
|||||
632 | { |
||||
633 | $ts = $this->cE->dateToStamp( |
||||
634 | $this->year, $this->month, $this->day+1, 0, 0, 0); |
||||
635 | return $this->returnValue('Day', $format, $ts, $this->cE->stampToDay($ts)); |
||||
0 ignored issues
–
show
|
|||||
636 | } |
||||
637 | |||||
638 | /** |
||||
639 | * Returns the value for the previous hour |
||||
640 | * |
||||
641 | * @param string $format return value format ['int'|'timestamp'|'object'|'array'] |
||||
642 | * |
||||
643 | * @return int e.g. 13 or timestamp |
||||
644 | * @access public |
||||
645 | */ |
||||
646 | function prevHour($format = 'int') |
||||
0 ignored issues
–
show
|
|||||
647 | { |
||||
648 | $ts = $this->cE->dateToStamp( |
||||
649 | $this->year, $this->month, $this->day, $this->hour-1, 0, 0); |
||||
650 | return $this->returnValue('Hour', $format, $ts, $this->cE->stampToHour($ts)); |
||||
0 ignored issues
–
show
|
|||||
651 | } |
||||
652 | |||||
653 | /** |
||||
654 | * Returns the value for this hour |
||||
655 | * |
||||
656 | * @param string $format return value format ['int'|'timestamp'|'object'|'array'] |
||||
657 | * |
||||
658 | * @return int e.g. 14 or timestamp |
||||
659 | * @access public |
||||
660 | */ |
||||
661 | function thisHour($format = 'int') |
||||
0 ignored issues
–
show
|
|||||
662 | { |
||||
663 | $ts = $this->cE->dateToStamp( |
||||
664 | $this->year, $this->month, $this->day, $this->hour, 0, 0); |
||||
665 | return $this->returnValue('Hour', $format, $ts, $this->hour); |
||||
0 ignored issues
–
show
|
|||||
666 | } |
||||
667 | |||||
668 | /** |
||||
669 | * Returns the value for the next hour |
||||
670 | * |
||||
671 | * @param string $format return value format ['int'|'timestamp'|'object'|'array'] |
||||
672 | * |
||||
673 | * @return int e.g. 14 or timestamp |
||||
674 | * @access public |
||||
675 | */ |
||||
676 | function nextHour($format = 'int') |
||||
0 ignored issues
–
show
|
|||||
677 | { |
||||
678 | $ts = $this->cE->dateToStamp( |
||||
679 | $this->year, $this->month, $this->day, $this->hour+1, 0, 0); |
||||
680 | return $this->returnValue('Hour', $format, $ts, $this->cE->stampToHour($ts)); |
||||
0 ignored issues
–
show
|
|||||
681 | } |
||||
682 | |||||
683 | /** |
||||
684 | * Returns the value for the previous minute |
||||
685 | * |
||||
686 | * @param string $format return value format ['int'|'timestamp'|'object'|'array'] |
||||
687 | * |
||||
688 | * @return int e.g. 23 or timestamp |
||||
689 | * @access public |
||||
690 | */ |
||||
691 | function prevMinute($format = 'int') |
||||
0 ignored issues
–
show
|
|||||
692 | { |
||||
693 | $ts = $this->cE->dateToStamp( |
||||
694 | $this->year, $this->month, $this->day, |
||||
695 | $this->hour, $this->minute-1, 0); |
||||
696 | return $this->returnValue('Minute', $format, $ts, $this->cE->stampToMinute($ts)); |
||||
0 ignored issues
–
show
|
|||||
697 | } |
||||
698 | |||||
699 | /** |
||||
700 | * Returns the value for this minute |
||||
701 | * |
||||
702 | * @param string $format return value format ['int'|'timestamp'|'object'|'array'] |
||||
703 | * |
||||
704 | * @return int e.g. 24 or timestamp |
||||
705 | * @access public |
||||
706 | */ |
||||
707 | function thisMinute($format = 'int') |
||||
0 ignored issues
–
show
|
|||||
708 | { |
||||
709 | $ts = $this->cE->dateToStamp( |
||||
710 | $this->year, $this->month, $this->day, |
||||
711 | $this->hour, $this->minute, 0); |
||||
712 | return $this->returnValue('Minute', $format, $ts, $this->minute); |
||||
0 ignored issues
–
show
|
|||||
713 | } |
||||
714 | |||||
715 | /** |
||||
716 | * Returns the value for the next minute |
||||
717 | * |
||||
718 | * @param string $format return value format ['int'|'timestamp'|'object'|'array'] |
||||
719 | * |
||||
720 | * @return int e.g. 25 or timestamp |
||||
721 | * @access public |
||||
722 | */ |
||||
723 | function nextMinute($format = 'int') |
||||
0 ignored issues
–
show
|
|||||
724 | { |
||||
725 | $ts = $this->cE->dateToStamp( |
||||
726 | $this->year, $this->month, $this->day, |
||||
727 | $this->hour, $this->minute+1, 0); |
||||
728 | return $this->returnValue('Minute', $format, $ts, $this->cE->stampToMinute($ts)); |
||||
0 ignored issues
–
show
|
|||||
729 | } |
||||
730 | |||||
731 | /** |
||||
732 | * Returns the value for the previous second |
||||
733 | * |
||||
734 | * @param string $format return value format ['int'|'timestamp'|'object'|'array'] |
||||
735 | * |
||||
736 | * @return int e.g. 43 or timestamp |
||||
737 | * @access public |
||||
738 | */ |
||||
739 | function prevSecond($format = 'int') |
||||
0 ignored issues
–
show
|
|||||
740 | { |
||||
741 | $ts = $this->cE->dateToStamp( |
||||
742 | $this->year, $this->month, $this->day, |
||||
743 | $this->hour, $this->minute, $this->second-1); |
||||
744 | return $this->returnValue('Second', $format, $ts, $this->cE->stampToSecond($ts)); |
||||
0 ignored issues
–
show
|
|||||
745 | } |
||||
746 | |||||
747 | /** |
||||
748 | * Returns the value for this second |
||||
749 | * |
||||
750 | * @param string $format return value format ['int'|'timestamp'|'object'|'array'] |
||||
751 | * |
||||
752 | * @return int e.g. 44 or timestamp |
||||
753 | * @access public |
||||
754 | */ |
||||
755 | function thisSecond($format = 'int') |
||||
0 ignored issues
–
show
|
|||||
756 | { |
||||
757 | $ts = $this->cE->dateToStamp( |
||||
758 | $this->year, $this->month, $this->day, |
||||
759 | $this->hour, $this->minute, $this->second); |
||||
760 | return $this->returnValue('Second', $format, $ts, $this->second); |
||||
0 ignored issues
–
show
|
|||||
761 | } |
||||
762 | |||||
763 | /** |
||||
764 | * Returns the value for the next second |
||||
765 | * |
||||
766 | * @param string $format return value format ['int'|'timestamp'|'object'|'array'] |
||||
767 | * |
||||
768 | * @return int e.g. 45 or timestamp |
||||
769 | * @access public |
||||
770 | */ |
||||
771 | function nextSecond($format = 'int') |
||||
0 ignored issues
–
show
|
|||||
772 | { |
||||
773 | $ts = $this->cE->dateToStamp( |
||||
774 | $this->year, $this->month, $this->day, |
||||
775 | $this->hour, $this->minute, $this->second+1); |
||||
776 | return $this->returnValue('Second', $format, $ts, $this->cE->stampToSecond($ts)); |
||||
0 ignored issues
–
show
|
|||||
777 | } |
||||
778 | } |
||||
779 |
Adding explicit visibility (
private
,protected
, orpublic
) is generally recommend to communicate to other developers how, and from where this method is intended to be used.