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) |
||
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) |
||
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() |
||
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) |
||
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() |
||
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() |
||
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() |
||
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) |
||
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) |
||
342 | { |
||
343 | switch (strtolower($format)) { |
||
344 | case 'int': |
||
345 | return $default; |
||
346 | case 'array': |
||
347 | return $this->toArray($stamp); |
||
348 | break; |
||
349 | case 'object': |
||
350 | return Factory::createByTimestamp($returnType, $stamp); |
||
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()) |
||
370 | { |
||
371 | include_once 'PEAR.php'; |
||
372 | PEAR::raiseError('Calendar::build is abstract', null, PEAR_ERROR_TRIGGER, |
||
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) |
||
387 | { |
||
388 | include_once 'PEAR.php'; |
||
389 | PEAR::raiseError( |
||
390 | 'Calendar::setSelection is abstract', null, PEAR_ERROR_TRIGGER, |
||
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() |
||
405 | { |
||
406 | $child = each($this->children); |
||
0 ignored issues
–
show
|
|||
407 | if ($child) { |
||
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() |
||
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() |
||
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() |
||
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) |
||
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') |
||
518 | { |
||
519 | $ts = $this->cE->dateToStamp($this->year-1, 1, 1, 0, 0, 0); |
||
520 | return $this->returnValue('Year', $format, $ts, $this->year-1); |
||
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') |
||
532 | { |
||
533 | $ts = $this->cE->dateToStamp($this->year, 1, 1, 0, 0, 0); |
||
534 | return $this->returnValue('Year', $format, $ts, $this->year); |
||
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') |
||
546 | { |
||
547 | $ts = $this->cE->dateToStamp($this->year+1, 1, 1, 0, 0, 0); |
||
548 | return $this->returnValue('Year', $format, $ts, $this->year+1); |
||
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') |
||
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)); |
||
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') |
||
574 | { |
||
575 | $ts = $this->cE->dateToStamp($this->year, $this->month, 1, 0, 0, 0); |
||
576 | return $this->returnValue('Month', $format, $ts, $this->month); |
||
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') |
||
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)); |
||
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') |
||
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)); |
||
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') |
||
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); |
||
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') |
||
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)); |
||
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') |
||
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)); |
||
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') |
||
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); |
||
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') |
||
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)); |
||
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') |
||
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)); |
||
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') |
||
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); |
||
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') |
||
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)); |
||
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') |
||
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)); |
||
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') |
||
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); |
||
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') |
||
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)); |
||
777 | } |
||
778 | } |
||
779 |
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.