[ Index ] |
|
Code source de CMS made simple 1.0.5 |
1 <?php 2 /** 3 * ADOdb Lite Date Module for MAXDB 4 * 5 */ 6 7 if (!defined('TIMESTAMP_FIRST_YEAR')) define('TIMESTAMP_FIRST_YEAR',100); 8 9 @include(ADODB_DIR . '/adodb-time.inc.php'); 10 11 eval('class maxdb_date_EXTENDER extends maxdb_'. $last_module . '_ADOConnection { }'); 12 13 class maxdb_date_ADOConnection extends maxdb_date_EXTENDER 14 { 15 var $fmtDate = "'Y-m-d'"; /// used by DBDate() as the default date format used by the database 16 var $fmtTimeStamp = "'Y-m-d, h:i:s A'"; /// used by DBTimeStamp as the default timestamp fmt. 17 var $emptyDate = ' '; 18 var $emptyTimeStamp = ' '; 19 var $sysDate = false; /// name of function that returns the current date 20 var $sysTimeStamp = false; /// name of function that returns the current timestamp 21 var $isoDates = false; /// accepts dates in ISO format 22 23 function Time() 24 { 25 $rs =& $this->_Execute("select $this->sysTimeStamp"); 26 if ($rs && !$rs->EOF) 27 return $this->UnixTimeStamp(reset($rs->fields)); 28 29 return false; 30 } 31 32 function OffsetDate($dayFraction, $date=false) 33 { 34 if (!$date) 35 $date = $this->sysDate; 36 37 return '('.$date.'+'.$dayFraction.')'; 38 } 39 40 function SetDateLocale($locale = 'En') 41 { 42 $this->locale = $locale; 43 switch (strtoupper($locale)) 44 { 45 case 'EN': 46 $this->fmtDate="'Y-m-d'"; 47 $this->fmtTimeStamp = "'Y-m-d H:i:s'"; 48 break; 49 50 case 'US': 51 $this->fmtDate = "'m-d-Y'"; 52 $this->fmtTimeStamp = "'m-d-Y H:i:s'"; 53 break; 54 55 case 'NL': 56 case 'FR': 57 case 'RO': 58 case 'IT': 59 $this->fmtDate="'d-m-Y'"; 60 $this->fmtTimeStamp = "'d-m-Y H:i:s'"; 61 break; 62 63 case 'GE': 64 $this->fmtDate="'d.m.Y'"; 65 $this->fmtTimeStamp = "'d.m.Y H:i:s'"; 66 break; 67 68 default: 69 $this->fmtDate="'Y-m-d'"; 70 $this->fmtTimeStamp = "'Y-m-d H:i:s'"; 71 break; 72 } 73 } 74 75 function DBDate($date) 76 { 77 if (empty($date) && $date !== 0) 78 return 'null'; 79 80 if (is_string($date) && !is_numeric($date)) { 81 if ($date === 'null' || strncmp($date, "'", 1) === 0) 82 return $date; 83 84 if ($this->isoDates) 85 return "'$date'"; 86 87 $date = $this->UnixDate($date); 88 } 89 90 return adodb_date($this->fmtDate,$date); 91 } 92 93 function DBTimeStamp($timestamp) 94 { 95 if (empty($timestamp) && $timestamp !== 0) 96 return 'null'; 97 98 # strlen(14) allows YYYYMMDDHHMMSS format 99 if (!is_string($timestamp) || (is_numeric($timestamp) && strlen($timestamp)<14)) 100 return adodb_date($this->fmtTimeStamp, $timestamp); 101 102 if ($timestamp === 'null') 103 return $timestamp; 104 105 if ($this->isoDates && strlen($timestamp) !== 14) 106 return "'$timestamp'"; 107 108 $timestamp = $this->UnixTimeStamp($timestamp); 109 return adodb_date($this->fmtTimeStamp, $timestamp); 110 } 111 112 function UnixDate($v) 113 { 114 if (is_object($v)) { 115 // odbtp support 116 //( [year] => 2004 [month] => 9 [day] => 4 [hour] => 12 [minute] => 44 [second] => 8 [fraction] => 0 ) 117 return adodb_mktime($v->hour, $v->minute, $v->second, $v->month, $v->day, $v->year); 118 } 119 120 if (is_numeric($v) && strlen($v) !== 8) 121 return $v; 122 123 if (!preg_match( "|^([0-9]{4})[-/\.]?([0-9]{1,2})[-/\.]?([0-9]{1,2})|", ($v), $rr)) 124 return false; 125 126 if ($rr[1] <= TIMESTAMP_FIRST_YEAR) 127 return 0; 128 129 // h-m-s-MM-DD-YY 130 return adodb_mktime(0, 0, 0, $rr[2], $rr[3], $rr[1]); 131 } 132 133 function UnixTimeStamp($v) 134 { 135 if (is_object($v)) { 136 // odbtp support 137 //( [year] => 2004 [month] => 9 [day] => 4 [hour] => 12 [minute] => 44 [second] => 8 [fraction] => 0 ) 138 return adodb_mktime($v->hour, $v->minute, $v->second, $v->month, $v->day, $v->year); 139 } 140 141 if (!preg_match("|^([0-9]{4})[-/\.]?([0-9]{1,2})[-/\.]?([0-9]{1,2})[ ,-]*(([0-9]{1,2}):?([0-9]{1,2}):?([0-9\.]{1,4}))?|", ($v), $rr)) 142 return false; 143 144 if ($rr[1] <= TIMESTAMP_FIRST_YEAR && $rr[2]<= 1) 145 return 0; 146 147 // h-m-s-MM-DD-YY 148 if (!isset($rr[5])) 149 return adodb_mktime(0, 0, 0, $rr[2], $rr[3], $rr[1]); 150 else return adodb_mktime($rr[5], $rr[6], $rr[7], $rr[2], $rr[3], $rr[1]); 151 } 152 153 function UserDate($v, $fmt='Y-m-d', $gmt=false) 154 { 155 $tt = $this->UnixDate($v); 156 157 // $tt == -1 if pre TIMESTAMP_FIRST_YEAR 158 if (($tt === false || $tt == -1) && $v != false) 159 return $v; 160 else if ($tt == 0) 161 return $this->emptyDate; 162 else if ($tt == -1) { // pre-TIMESTAMP_FIRST_YEAR 163 } 164 165 return ($gmt) ? adodb_gmdate($fmt, $tt) : adodb_date($fmt, $tt); 166 } 167 168 function UserTimeStamp($v, $fmt='Y-m-d H:i:s', $gmt=false) 169 { 170 if (!isset($v)) 171 return $this->emptyTimeStamp; 172 173 # strlen(14) allows YYYYMMDDHHMMSS format 174 if (is_numeric($v) && strlen($v)<14) 175 return ($gmt) ? adodb_gmdate($fmt,$v) : adodb_date($fmt,$v); 176 177 $tt = $this->UnixTimeStamp($v); 178 // $tt == -1 if pre TIMESTAMP_FIRST_YEAR 179 if (($tt === false || $tt == -1) && $v != false) 180 return $v; 181 182 if ($tt == 0) 183 return $this->emptyTimeStamp; 184 else return ($gmt) ? adodb_gmdate($fmt,$tt) : adodb_date($fmt,$tt); 185 } 186 187 } 188 189 eval('class maxdb_date_resultset_EXTENDER extends maxdb_'. $last_module . '_ResultSet { }'); 190 191 class maxdb_date_ResultSet extends maxdb_date_resultset_EXTENDER 192 { 193 var $emptyTimeStamp = ' '; /// what to display when $time==0 194 var $emptyDate = ' '; /// what to display when $time==0 195 var $datetime = false; 196 197 function UserTimeStamp($v, $fmt='Y-m-d H:i:s') 198 { 199 if (is_numeric($v) && strlen($v)<14) 200 return adodb_date($fmt,$v); 201 202 $tt = $this->UnixTimeStamp($v); 203 // $tt == -1 if pre TIMESTAMP_FIRST_YEAR 204 if (($tt === false || $tt == -1) && $v != false) 205 return $v; 206 207 if ($tt === 0) 208 return $this->emptyTimeStamp; 209 else return adodb_date($fmt,$tt); 210 } 211 212 function UserDate($v,$fmt='Y-m-d') 213 { 214 $tt = $this->UnixDate($v); 215 // $tt == -1 if pre TIMESTAMP_FIRST_YEAR 216 if (($tt === false || $tt == -1) && $v != false) 217 return $v; 218 else if ($tt == 0) 219 return $this->emptyDate; 220 else if ($tt == -1) { // pre-TIMESTAMP_FIRST_YEAR 221 } 222 return adodb_date($fmt,$tt); 223 } 224 225 function UnixDate($v) 226 { 227 return ADOConnection::UnixDate($v); 228 } 229 230 function UnixTimeStamp($v) 231 { 232 return ADOConnection::UnixTimeStamp($v); 233 } 234 235 } 236 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Tue Apr 3 18:50:37 2007 | par Balluche grâce à PHPXref 0.7 |