Calendar::setTimestamp()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 6
nc 1
nop 1
dl 0
loc 8
rs 10
c 0
b 0
f 0
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
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
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
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
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
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
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
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
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
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
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
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
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
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
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
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
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
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
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
Unused Code introduced by
break is not strictly necessary here and could be removed.

The break statement is not necessary if it is preceded for example by a return statement:

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 case statements, you can safely mark this issue as a false-positive.

Loading history...
349
        case 'object':
350
            return Factory::createByTimestamp($returnType, $stamp);
0 ignored issues
show
Bug Best Practice introduced by
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 ignore-call  annotation

350
            return Factory::/** @scrutinizer ignore-call */ createByTimestamp($returnType, $stamp);
Loading history...
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
Unused Code introduced by
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 ignore-unused  annotation

369
    function build(/** @scrutinizer ignore-unused */ $sDates = array())

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
370
    {
371
        include_once 'PEAR.php';
372
        PEAR::raiseError('Calendar::build is abstract', null, PEAR_ERROR_TRIGGER,
0 ignored issues
show
Bug introduced by
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. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
Bug introduced by
The constant PEAR\Calendar\PEAR_ERROR_TRIGGER was not found. Maybe you did not declare it correctly or list all dependencies?
Loading history...
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
Unused Code introduced by
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 ignore-unused  annotation

386
    function setSelection(/** @scrutinizer ignore-unused */ $sDates)

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
387
    {
388
        include_once 'PEAR.php';
389
        PEAR::raiseError(
390
            'Calendar::setSelection is abstract', null, PEAR_ERROR_TRIGGER,
0 ignored issues
show
Bug introduced by
The constant PEAR\Calendar\PEAR_ERROR_TRIGGER was not found. Maybe you did not declare it correctly or list all dependencies?
Loading history...
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
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
405
    {
406
        $child = each($this->children);
0 ignored issues
show
Deprecated Code introduced by
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 ignore-deprecated  annotation

406
        $child = /** @scrutinizer ignore-deprecated */ each($this->children);

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.

Loading history...
407
        if ($child) {
0 ignored issues
show
Bug Best Practice introduced by
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 empty(..) or ! empty(...) instead.

Loading history...
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
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
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
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
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
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
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
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
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
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
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
Bug Best Practice introduced by
The expression return $this->returnValu..., $ts, $this->year - 1) also could return the type array|object which is incompatible with the documented return type integer.
Loading history...
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
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
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
Bug Best Practice introduced by
The expression return $this->returnValu...rmat, $ts, $this->year) also could return the type array|object which is incompatible with the documented return type integer.
Loading history...
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
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
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
Bug Best Practice introduced by
The expression return $this->returnValu..., $ts, $this->year + 1) also could return the type array|object which is incompatible with the documented return type integer.
Loading history...
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
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
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
Bug Best Practice introduced by
The expression return $this->returnValu...>cE->stampToMonth($ts)) also could return the type array|object which is incompatible with the documented return type integer.
Loading history...
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
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
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
Bug Best Practice introduced by
The expression return $this->returnValu...mat, $ts, $this->month) also could return the type array|object which is incompatible with the documented return type integer.
Loading history...
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
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
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
Bug Best Practice introduced by
The expression return $this->returnValu...>cE->stampToMonth($ts)) also could return the type array|object which is incompatible with the documented return type integer.
Loading history...
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
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
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
Bug Best Practice introduced by
The expression return $this->returnValu...s->cE->stampToDay($ts)) also could return the type array|object which is incompatible with the documented return type integer.
Loading history...
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
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
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
Bug Best Practice introduced by
The expression return $this->returnValu...ormat, $ts, $this->day) also could return the type array|object which is incompatible with the documented return type integer.
Loading history...
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
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
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
Bug Best Practice introduced by
The expression return $this->returnValu...s->cE->stampToDay($ts)) also could return the type array|object which is incompatible with the documented return type integer.
Loading history...
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
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
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
Bug Best Practice introduced by
The expression return $this->returnValu...->cE->stampToHour($ts)) also could return the type array|object which is incompatible with the documented return type integer.
Loading history...
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
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
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
Bug Best Practice introduced by
The expression return $this->returnValu...rmat, $ts, $this->hour) also could return the type array|object which is incompatible with the documented return type integer.
Loading history...
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
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
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
Bug Best Practice introduced by
The expression return $this->returnValu...->cE->stampToHour($ts)) also could return the type array|object which is incompatible with the documented return type integer.
Loading history...
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
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
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
Bug Best Practice introduced by
The expression return $this->returnValu...cE->stampToMinute($ts)) also could return the type array|object which is incompatible with the documented return type integer.
Loading history...
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
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
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
Bug Best Practice introduced by
The expression return $this->returnValu...at, $ts, $this->minute) also could return the type array|object which is incompatible with the documented return type integer.
Loading history...
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
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
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
Bug Best Practice introduced by
The expression return $this->returnValu...cE->stampToMinute($ts)) also could return the type array|object which is incompatible with the documented return type integer.
Loading history...
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
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
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
Bug Best Practice introduced by
The expression return $this->returnValu...cE->stampToSecond($ts)) also could return the type array|object which is incompatible with the documented return type integer.
Loading history...
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
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
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
Bug Best Practice introduced by
The expression return $this->returnValu...at, $ts, $this->second) also could return the type array|object which is incompatible with the documented return type integer.
Loading history...
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
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
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
Bug Best Practice introduced by
The expression return $this->returnValu...cE->stampToSecond($ts)) also could return the type array|object which is incompatible with the documented return type integer.
Loading history...
777
    }
778
}
779