1: <?php
2:
3: 4: 5: 6: 7: 8: 9: 10:
11:
12:
13:
14: 15: 16: 17: 18: 19:
20: class DibiDateTime extends DateTime
21: {
22:
23: public function __construct($time = 'now', DateTimeZone $timezone = NULL)
24: {
25: if (is_numeric($time)) {
26: $time = date('Y-m-d H:i:s', $time);
27: }
28: if ($timezone === NULL) {
29: parent::__construct($time);
30: } else {
31: parent::__construct($time, $timezone);
32: }
33: }
34:
35:
36:
37: public function modifyClone($modify = '')
38: {
39: $dolly = clone($this);
40: return $modify ? $dolly->modify($modify) : $dolly;
41: }
42:
43:
44:
45: public function modify($modify)
46: {
47: parent::modify($modify);
48: return $this;
49: }
50:
51:
52:
53: public function __sleep()
54: {
55: $this->fix = array($this->format('Y-m-d H:i:s'), $this->getTimezone()->getName());
56: return array('fix');
57: }
58:
59:
60:
61: public function __wakeup()
62: {
63: $this->__construct($this->fix[0], new DateTimeZone($this->fix[1]));
64: unset($this->fix);
65: }
66:
67:
68:
69: public function getTimestamp()
70: {
71: return (int) $this->format('U');
72: }
73:
74:
75:
76: public function setTimestamp($timestamp)
77: {
78: return $this->__construct(date('Y-m-d H:i:s', $timestamp), new DateTimeZone($this->getTimezone()->getName()));
79: }
80:
81:
82:
83: public function __toString()
84: {
85: return $this->format('Y-m-d H:i:s');
86: }
87:
88: }
89: