Пример #1
0
function get_comic($comic, $date) {
  global $sql;

  $res=$sql->query("select gfx, strftime('%s', 'now')-strftime('%s', timestamp) as last from comics_date where comic='$comic' and date='$date'");
  if($elem=$sql->fetch_assoc($res)) {
    if($elem['gfx'])
      return $elem["gfx"];
    elseif(!date_is_after($date, date_add(date_get_today(), -60))) {
      return null;
    }
    elseif((!date_is_after($date, date_add(date_get_today(), -2)))&&($elem['last']>24*60*60))
      return null;
    elseif($elem['last']>60)
      return null;
  }

  $fun="{$comic}_check";
  $gfx=$fun($date);
  if($gfx)
    $gfx_sql="\"$gfx\"";
  else
    $gfx_sql="null";

  $sql->query("insert or replace into comics_date values ('$comic', '$date', $gfx_sql, null, datetime('now'))");

  return $gfx;
}
Пример #2
0
function date_get_array($date, $base=0, $mode=0) {
  if(!$date)
    return 0;

  if(is_array($date)) {
    switch($mode) {
      case 0:
        return $date;
      case 1:
        if(sizeof($date)==5)
          return null;
        return $date;
      case 2:
        if(sizeof($date)==3)
          return null;
        return $date;
      case 3:
        return array_slice($date, 0, 3);
    }
  }

  if(eregi("^([0-9][0-9][0-9][0-9])\-([0-9][0-9])\-([0-9][0-9])( ([0-9][0-9]):([0-9][0-9])(:[0-9][0-9])?)?$", $date, $m)) {
    if(($m[4])&&($mode==1))
      return null;
    if((!$m[4])&&($mode==2))
      return null;

    if((!$m[4])||($mode==3))
      return array((int)$m[1], (int)$m[2], (int)$m[3]);
    else
      return array((int)$m[1], (int)$m[2], (int)$m[3], (int)$m[5], (int)$m[6]);
  }

  if(eregi("^([0-9][0-9]?)\.([0-9][0-9]?)\.([0-9][0-9][0-9][0-9]|[0-9][0-9])?( ([0-9]?[0-9]):([0-9][0-9]))?$", $date, $m)) {
    if(($m[4])&&($mode==1))
      return null;
    if((!$m[4])&&($mode==2))
      return null;

    if(!$m[3]) {
      if(!$base)
        $base=date_get_now();
      $base=date_get_last_date($base);
      $base=date_get_array($base);
      //print "BASE ";print_r($base); print "<=";
      $m[3]=$base[0];

      if(!date_is_after(array($m[3], $m[2], $m[1]), $base))
        $m[3]++;
    }
    elseif($m[3]<40) {
      $m[3]="20".$m[3];
    }
    elseif($m[3]<100) {
      $m[3]="19".$m[3];
    }

    if((!$m[4])||($mode==3))
      return array((int)$m[3], (int)$m[2], (int)$m[1]);
    else
      return array((int)$m[3], (int)$m[2], (int)$m[1], (int)$m[5], (int)$m[6]);
  }

  if(eregi("^([0-9][0-9]?):([0-9][0-9])(:[0-9][0-9])?$", $date, $m)) {
    if(($m[4])&&($mode==2))
      return null;

    if(!$base)
      $base=date_get_now();
    $base=date_get_last_date($base);
    $base=date_get_array($base);

    if(($m[1]<$base[3])||(($m[1]==$base[3])&&($m[2]<$base[4]))) {
      $base=date_add($base, 1);
    }

    if($mode==3)
      return array($base[0], $base[1], $base[2]);
    else
      return array($base[0], $base[1], $base[2], (int)$m[1], (int)$m[2]);
  }

  if(is_integer($date)) {
    if(($mode==0)||($mode==2))
      return explode("\t", date("Y\tm\td\tH\ti", $date));
    else
      return explode("\t", date("Y\tm\td", $date));
  }

  return null;
}