[ Index ]
 

Code source de CMS made simple 1.0.5

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/lib/adodb_lite/adodbSQL_drivers/mysqli/ -> mysqli_date_module.inc (source)

   1  <?php
   2  /**

   3   * ADOdb Lite Date Module for Mysql

   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 mysqli_date_EXTENDER extends '. $last_module . '_ADOConnection { }');
  12  
  13  class mysqli_date_ADOConnection extends mysqli_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 = '&nbsp;';
  18      var $emptyTimeStamp = '&nbsp;';
  19      var $sysDate = 'CURDATE()';
  20      var $sysTimeStamp = 'NOW()';
  21      var $isoDates = true; // 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          else return false;
  29      }
  30  
  31  	function OffsetDate($dayFraction, $date=false)
  32      {
  33          if (!$date)
  34              $date = $this->sysDate;
  35  
  36          $fraction = $dayFraction * 24 * 3600;
  37          return "from_unixtime(unix_timestamp($date)+$fraction)";
  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          return adodb_date($this->fmtDate, $date);
  90      }
  91  
  92  	function DBTimeStamp($timestamp)
  93      {
  94          if (empty($timestamp) && $timestamp !== 0)
  95              return 'null';
  96  
  97          # strlen(14) allows YYYYMMDDHHMMSS format

  98          if (!is_string($timestamp) || (is_numeric($timestamp) && strlen($timestamp)<14)) 
  99              return adodb_date($this->fmtTimeStamp, $timestamp);
 100  
 101          if ($timestamp === 'null')
 102              return $timestamp;
 103  
 104          if ($this->isoDates && strlen($timestamp) !== 14)
 105              return "'$timestamp'";
 106  
 107          return adodb_date($this->fmtTimeStamp, $this->UnixTimeStamp($timestamp));
 108      }
 109  
 110  	function UnixDate($v)
 111      {
 112          if (is_object($v)) {
 113          // odbtp support

 114          //( [year] => 2004 [month] => 9 [day] => 4 [hour] => 12 [minute] => 44 [second] => 8 [fraction] => 0 )

 115              return adodb_mktime($v->hour, $v->minute, $v->second, $v->month, $v->day, $v->year);
 116          }
 117          if (is_numeric($v) && strlen($v) !== 8)
 118              return $v;
 119  
 120          if (!preg_match( "|^([0-9]{4})[-/\.]?([0-9]{1,2})[-/\.]?([0-9]{1,2})|", ($v), $rr))
 121              return false;
 122  
 123          if ($rr[1] <= TIMESTAMP_FIRST_YEAR)
 124              return 0;
 125  
 126          // h-m-s-MM-DD-YY

 127          return adodb_mktime(0, 0, 0, $rr[2], $rr[3], $rr[1]);
 128      }
 129      
 130  
 131  	function UnixTimeStamp($v)
 132      {
 133          if (is_object($v)) {
 134          // odbtp support

 135          //( [year] => 2004 [month] => 9 [day] => 4 [hour] => 12 [minute] => 44 [second] => 8 [fraction] => 0 )

 136              return adodb_mktime($v->hour, $v->minute, $v->second, $v->month, $v->day, $v->year);
 137          }
 138          
 139          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))
 140              return false;
 141  
 142          if ($rr[1] <= TIMESTAMP_FIRST_YEAR && $rr[2]<= 1)
 143              return 0;
 144  
 145          // h-m-s-MM-DD-YY

 146          if (!isset($rr[5]))
 147              return adodb_mktime(0, 0, 0, $rr[2], $rr[3], $rr[1]);
 148  
 149          return adodb_mktime($rr[5], $rr[6], $rr[7], $rr[2], $rr[3], $rr[1]);
 150      }
 151  
 152  	function UserDate($v, $fmt='Y-m-d', $gmt=false)
 153      {
 154          $tt = $this->UnixDate($v);
 155  
 156          // $tt == -1 if pre TIMESTAMP_FIRST_YEAR

 157          if (($tt === false || $tt == -1) && $v != false)
 158              return $v;
 159          else if ($tt == 0)
 160              return $this->emptyDate;
 161          else if ($tt == -1) { // pre-TIMESTAMP_FIRST_YEAR
 162          }
 163  
 164          return ($gmt) ? adodb_gmdate($fmt, $tt) : adodb_date($fmt, $tt);
 165      }
 166  
 167  	function UserTimeStamp($v, $fmt='Y-m-d H:i:s', $gmt=false)
 168      {
 169          if (!isset($v))
 170              return $this->emptyTimeStamp;
 171  
 172          # strlen(14) allows YYYYMMDDHHMMSS format

 173          if (is_numeric($v) && strlen($v)<14)
 174              return ($gmt) ? adodb_gmdate($fmt, $v) : adodb_date($fmt,$v);
 175  
 176          $tt = $this->UnixTimeStamp($v);
 177          // $tt == -1 if pre TIMESTAMP_FIRST_YEAR

 178          if (($tt === false || $tt == -1) && $v != false)
 179              return $v;
 180  
 181          if ($tt == 0)
 182              return $this->emptyTimeStamp;
 183  
 184          return ($gmt) ? adodb_gmdate($fmt, $tt) : adodb_date($fmt, $tt);
 185      }
 186  
 187  	function SQLDate($fmt, $col=false)
 188      {
 189          if (!$col)
 190              $col = $this->sysTimeStamp;
 191  
 192          $s = 'DATE_FORMAT('.$col.",'";
 193          $concat = false;
 194          $len = strlen($fmt);
 195          for ($i=0; $i < $len; $i++) {
 196              $ch = $fmt[$i];
 197              switch($ch) {
 198                  default:
 199                      if ($ch == '\\') {
 200                          $i++;
 201                          $ch = substr($fmt, $i, 1);
 202                      }
 203  
 204                      /** FALL THROUGH */

 205                  case '-':
 206                  case '/':
 207                      $s .= $ch;
 208                      break;
 209  
 210                  case 'Y':
 211                  case 'y':
 212                      $s .= '%Y';
 213                      break;
 214  
 215                  case 'M':
 216                      $s .= '%b';
 217                      break;
 218  
 219                  case 'm':
 220                      $s .= '%m';
 221                      break;
 222  
 223                  case 'D':
 224                  case 'd':
 225                      $s .= '%d';
 226                      break;
 227  
 228                  case 'Q':
 229                  case 'q':
 230                      $s .= "'),Quarter($col)";
 231                      if ($len > $i+1)
 232                          $s .= ",DATE_FORMAT($col,'";
 233                      else $s .= ",('";
 234                      $concat = true;
 235                      break;
 236  
 237                  case 'H': 
 238                      $s .= '%H';
 239                      break;
 240  
 241                  case 'h':
 242                      $s .= '%I';
 243                      break;
 244  
 245                  case 'i':
 246                      $s .= '%i';
 247                      break;
 248  
 249                  case 's':
 250                      $s .= '%s';
 251                      break;
 252  
 253                  case 'a':
 254                  case 'A':
 255                      $s .= '%p';
 256                      break;
 257  
 258                  case 'w':
 259                      $s .= '%w';
 260                      break;
 261  
 262                  case 'l':
 263                      $s .= '%W';
 264                      break;
 265              }
 266          }
 267          $s.="')";
 268          if ($concat)
 269              $s = "CONCAT($s)";
 270  
 271          return $s;
 272      }
 273  }
 274  
 275  eval('class mysqli_date_resultset_EXTENDER extends '. $last_module . '_ResultSet { }');
 276  
 277  class mysqli_date_ResultSet extends mysqli_date_resultset_EXTENDER
 278  {
 279      var $emptyTimeStamp = '&nbsp;'; /// what to display when $time==0

 280      var $emptyDate = '&nbsp;'; /// what to display when $time==0

 281      var $datetime = false;
 282  
 283  	function UserTimeStamp($v, $fmt='Y-m-d H:i:s')
 284      {
 285          if (is_numeric($v) && strlen($v)<14)
 286              return adodb_date($fmt, $v);
 287  
 288          $tt = $this->UnixTimeStamp($v);
 289          // $tt == -1 if pre TIMESTAMP_FIRST_YEAR

 290          if (($tt === false || $tt == -1) && $v != false)
 291              return $v;
 292  
 293          if ($tt === 0)
 294              return $this->emptyTimeStamp;
 295          else return adodb_date($fmt, $tt);
 296      }
 297  
 298  	function UserDate($v,$fmt='Y-m-d')
 299      {
 300          $tt = $this->UnixDate($v);
 301          // $tt == -1 if pre TIMESTAMP_FIRST_YEAR

 302          if (($tt === false || $tt == -1) && $v != false)
 303              return $v;
 304          else if ($tt == 0)
 305              return $this->emptyDate;
 306          else if ($tt == -1) { // pre-TIMESTAMP_FIRST_YEAR
 307          }
 308          return adodb_date($fmt, $tt);
 309      }
 310  
 311  	function UnixDate($v)
 312      {
 313          return mysqli_date_ADOConnection::UnixDate($v);
 314      }
 315  
 316  	function UnixTimeStamp($v)
 317      {
 318          return mysqli_date_ADOConnection::UnixTimeStamp($v);
 319      }
 320  }
 321  ?>


Généré le : Tue Apr 3 18:50:37 2007 par Balluche grâce à PHPXref 0.7