Datumsscript: Wo Fehler?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Datumsscript: Wo Fehler?

    Quellcode

    1. <html><body>
    2. <?
    3. // stichtage als Unixtime erzeugen
    4. //stunde, minute, sekunde, monat, tag, jahr
    5. $newDate = array(mktime(14,0,0, 5, 22, 2005),mktime(14,0,0,3,6,2005));
    6. //200503201400,200504031400,200504241400,200505081400,200505221400,
    7. //200505291400,200506121400,200506191400,200507031400,200507101400,200507241400,200507311400,
    8. //200508211400,200509041400,200509111400,200509251400,200510091400,200510161400,200603041400
    9. // aktuelle Zeit im Unixformat erzeugen
    10. $actDate = time();
    11. // Differenz berechnen (in Sekunden)
    12. $gpdauer=5400;
    13. $dauergp=$actDate-$gpdauer;
    14. $actDate++;
    15. $b=0;
    16. //welcher GP kommt als nächster?
    17. for($a=0;$a>=0;$a++){
    18. //Ist der GP später als das aktuelle Datum?
    19. if($newDate[$a]>$actDate){
    20. $diffDate = $newDate - $actDate;
    21. // Anzahl Tage = Sekunden /24/60/60
    22. // floor() liefert nur den Anteil vor dem Komma
    23. $days = floor($diffDate / 24 / 60 / 60 );
    24. // den verbleibenden Rest berechnen = Stunden
    25. $diffDate = $diffDate - ($days*24*60*60);
    26. // den Stundenanteil herausrechnen
    27. $hours = floor($diffDate / 60 / 60);
    28. $diffDate = ($diffDate - ($hours*60*60));
    29. // den Minutenanteil
    30. $minutes = floor($diffDate/60);
    31. $diffDate = $diffDate - ($minutes*60);
    32. // die verbleibenden Sekunden
    33. $seconds = floor($diffDate);
    34. //Schleife beenden
    35. $a=-3;
    36. }
    37. //Wenn nicht, ist er nur einenhalb Stunden jünger?
    38. else{
    39. if($newDate[$a]>$dauergp){
    40. $ausgabe="Im Moment findet ein Grandprix statt";
    41. $b=1;
    42. //Schleife beenden
    43. $a=-3;
    44. }
    45. }
    46. //Sicherung
    47. if($a>5000){
    48. $a=-3;
    49. }
    50. }
    51. if($b>0){
    52. echo "<table style=\"border: 2px solid rgb(0, 0, 0);\" border=\"0\" width=\"100%\" cellspacing=\"0\"><tr><td style=\"border-bottom: 1px solid rgb(0, 0, 0);\" bgcolor=\"#C58D56\"><p align=\"center\"><b>Nächster Grand Prix in:</b></td></tr><tr><td><p align=\"center\">";
    53. echo $ausgabe;
    54. echo'</td></tr></table>';
    55. }
    56. else{
    57. // und das ganze dann Anzeigen:
    58. if($ausgabe!="")
    59. echo "<table style=\"border: 2px solid rgb(0, 0, 0);\" border=\"0\" width=\"100%\" cellspacing=\"0\"><tr><td style=\"border-bottom: 1px solid rgb(0, 0, 0);\" bgcolor=\"#C58D56\"><p align=\"center\"><b>Nächster Grand Prix in:</b></td></tr><tr><td><p align=\"center\">";
    60. echo $days;
    61. echo' Tag';
    62. if($days>1){echo'e';
    63. }
    64. echo', ';
    65. echo $hours;
    66. echo' Stunde';
    67. if($hours>1){
    68. echo'n';
    69. }
    70. echo'<br>und ';
    71. echo $minutes;
    72. echo' Minute';
    73. if($minutes>1){
    74. echo'n';
    75. }
    76. echo'</td></tr></table>';
    77. }
    78. ?>
    79. </body></html>
    Alles anzeigen


    das script soll die termine aus $newDate mit dam aktuellen datum vergleichen und herausfinden, welcher GP als nächster kommt und wie lang das noch dauert...
    das else innerhalb der for is nur für den fall, dass ein GP gerade läuft
    jetzt bekomme ich für die zeile $diffDate = $newDate - $actDate;
    einen fehler...
    woran kann das liegen?