[ Index ] |
|
Code source de CMS made simple 1.0.5 |
1 <?php 2 /** 3 * ADOdb Lite Date Module for SQLite 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 sqlite_date_EXTENDER extends '. $last_module . '_ADOConnection { }'); 12 13 class sqlite_date_ADOConnection extends sqlite_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'"; 17 var $emptyDate = ' '; 18 var $emptyTimeStamp = ' '; 19 var $sysDate = "adodb_date('Y-m-d')"; 20 var $sysTimeStamp = "adodb_date('Y-m-d H:i:s')"; 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 function SQLDate($fmt, $col=false) 188 { 189 $fmt = $this->qstr($fmt); 190 return ($col) ? "adodb_date2($fmt,$col)" : "adodb_date($fmt)"; 191 } 192 } 193 194 eval('class sqlite_date_resultset_EXTENDER extends '. $last_module . '_ResultSet { }'); 195 196 class sqlite_date_ResultSet extends sqlite_date_resultset_EXTENDER 197 { 198 var $emptyTimeStamp = ' '; /// what to display when $time==0 199 var $emptyDate = ' '; /// what to display when $time==0 200 var $datetime = false; 201 202 function UserTimeStamp($v, $fmt='Y-m-d H:i:s') 203 { 204 if (is_numeric($v) && strlen($v)<14) 205 return adodb_date($fmt,$v); 206 207 $tt = $this->UnixTimeStamp($v); 208 // $tt == -1 if pre TIMESTAMP_FIRST_YEAR 209 if (($tt === false || $tt == -1) && $v != false) 210 return $v; 211 212 if ($tt === 0) 213 return $this->emptyTimeStamp; 214 else return adodb_date($fmt,$tt); 215 } 216 217 function UserDate($v,$fmt='Y-m-d') 218 { 219 $tt = $this->UnixDate($v); 220 // $tt == -1 if pre TIMESTAMP_FIRST_YEAR 221 if (($tt === false || $tt == -1) && $v != false) 222 return $v; 223 else if ($tt == 0) 224 return $this->emptyDate; 225 else if ($tt == -1) { // pre-TIMESTAMP_FIRST_YEAR 226 } 227 return adodb_date($fmt,$tt); 228 } 229 230 function UnixDate($v) 231 { 232 return sqlite_date_ADOConnection::UnixDate($v); 233 } 234 235 function UnixTimeStamp($v) 236 { 237 return sqlite_date_ADOConnection::UnixTimeStamp($v); 238 } 239 240 } 241 ?>
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 |