ďťż

Problem z timestamp

       

Podstrony


telcocafe

Otóż problem dotyczy formatu timestamp. Zrobiłem na stronie kalendarz oparty właśnie na formacie timestamp i pokazywane są 2 niedziele 29 października (www.mia.webd.pl). Niesądze, żeby był to błąd w kodzie, bo podobny problem zauważyłem na innych stronach, ale na wszelki wypadek przytaczam zastosowany kod php:

if(isset($fcn)){ unset($fcn); } //ilość pokazywanych dni $days = 7; //tablica z nazwami dni tygodnia $weeks_days_array[0] = "<font color=\"#CC0000\">Niedziela</font>"; $weeks_days_array[1] = "Poniedziałek"; $weeks_days_array[2] = "Wtorek"; $weeks_days_array[3] = "Środa"; $weeks_days_array[4] = "Czwartek"; $weeks_days_array[5] = "Piątek"; $weeks_days_array[6] = "<font color=\"#666666\">Sobota</font>"; //pobranie dzisiejszej daty $day = date(d); $month = date(m); $year = date(Y); //zmiana formatu daty na timestamp $timestamp = mktime(0,0,0,$month,$day,$year); //wyświetlenie wydarzeń $fcn = "<table width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\">"; for($i=0; $i<$days; $i++){ $r_timestamp = $timestamp + $i * 86400; $date_array = getdate($r_timestamp); $wynik_wydarzenia = db_query("select * from `wydarzenia` where (`dzien`='".$date_array["mday"]."') and (`miesiac`='".$date_array["mon"]."') and (`rok`='".$date_array["year"]."')"); $spr = mysql_num_rows($wynik_wydarzenia); if($spr == "0"){ $fcn .= "<tr> <td class=\"content_blank\"> <div class=\"wydarzenia_num\" style=\"font-size: 12px;\">"; if($date_array["wday"] == "0" || $date_array["wday"] == "6"){ if($date_array["wday"] == "0"){ $fcn .= "<font color=\"#CC0000\">"; } elseif($date_array["wday"] == "6"){ $fcn .= "<font color=\"#666666\">"; } $fcn .= $date_array["mday"]; $fcn .= "</font>"; } else { $fcn .= $date_array["mday"]; } $fcn .= "</div> <div class=\"wydarzenia_wday\">".$weeks_days_array[$date_array[ "wday"]]."</div> </td> </tr>"; } else { $fcn .= "<tr> <td class=\"content_blank\"> <div class=\"wydarzenia_num\" style=\"font-size: 20px;\">"; if($date_array["wday"] == "0" || $date_array["wday"] == "6"){ if($date_array["wday"] == "0"){ $fcn .= "<font color=\"#CC0000\">"; } elseif($date_array["wday"] == "6"){ $fcn .= "<font color=\"#666666\">"; } $fcn .= $date_array["mday"]; $fcn .= "</font>"; } else { $fcn .= $date_array["mday"]; } $fcn .= "</div> <div class=\"wydarzenia_wday\">".$weeks_days_array[$date_array[ "wday"]]."</div>"; while($wydarzenie = mysql_fetch_array($wynik_wydarzenia)){ $fcn .= "<img src=\"http://www.mia.webd.pl/styl/images/bullet.gif\"> <a"; if($wydarzenie["details"] !== ""){ $fcn .= " onmouseover=\"overlib('".$wydarzenie["details"]."', FGCOLOR, '#D3D3D3', BGCOLOR, '#9C0505', TEXTCOLOR, '#000000', CAPTIONSIZE, '1', BORDER, 1, CAPTIONFONT, 'Verdana', TEXTFONT, 'Verdana', TEXTSIZE, 1, STATUS, '')\" onmouseout=\"nd();\""; } $fcn .= ">".$wydarzenie["title"]."</a><br>"; } $fcn = substr($fcn,0,-4); $fcn .= "</td> </tr>"; } } $fcn .= "</table>"; return $fcn;

Czy można w jakiś sposób obejść ten problem?
Użytkownik brodi3 edytował ten post 25 październik 2006, 19:56



Niesądze, żeby był to błąd w kodzie

wydaje mi sie ze jednak kod zle funkcjonuje.. a co innego moze byc zle? :> hmm..

nie wiem czemu ale cos mi tu nie pasuje:

{ $fcn .= "<tr> <td class=\"content_blank\"> <div class=\"wydarzenia_num\" style=\"font-size: 12px;\">"; if($date_array["wday"] == "0" || $date_array["wday"] == "6"){ if($date_array["wday"] == "0"){ $fcn .= "<font color=\"#CC0000\">"; } elseif($date_array["wday"] == "6"){ $fcn .= "<font color=\"#666666\">"; }
Użytkownik yoyek edytował ten post 25 październik 2006, 20:26
Jeśli to jest niedziela lub sobota
($date_array["wday"] == "0" || $date_array["wday"] == "6")
to jest zmieniany kolor czcionki na szary lub czerwony.

wiem ale ten caly fragment mi nie pasuje.. nie za dobrze sie znam na php wiec Ci nie pomoge :(



OK, trochę posiedziałem nad tym, uprościłem, wywaliłem zbędne elementy i napisałem to:
<? //ilość pokazywanych dni $days = 7; //tablica z nazwami dni tygodnia $weeks_days_array[0] = "Niedziela"; $weeks_days_array[1] = "Poniedziałek"; $weeks_days_array[2] = "Wtorek"; $weeks_days_array[3] = "Środa"; $weeks_days_array[4] = "Czwartek"; $weeks_days_array[5] = "Piątek"; $weeks_days_array[6] = "Sobota"; //pobranie dzisiejszej daty $day = date(d); $month = date(m); $year = date(Y); //zmiana formatu daty na timestamp $timestamp = mktime(0,0,0,$month,$day,$year); //wyświetlenie wydarzeń for($i=0; $i<$days; $i++){ $r_timestamp = $timestamp + $i * 86400; $date_array = getdate($r_timestamp); echo "timestamp: ".$r_timestamp." || Data: ".$weeks_days_array[$date_array["wday"]].", ".$date_array["mday"].".".$date_array["mon"]." .".$date_array["year"]."<br>"; } ?>

Wynik skryptu tutaj:
http://www.mia.webd.pl/8.php

Mimo, że timestamp jest różny (za każdym razem +24h) to data 29 października występuje 2 razy <_<

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.