Background-Image Swap per Serverzeit

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

  • Background-Image Swap per Serverzeit

    Hallo Leute, hab ein Problem.
    Ich möchte das Hintergrundbild meiner Webseite per Background Swap jeweils zu einer bestimmten Uhrzeit mittels css und php wechseln.
    Funktioniert eigentlich auch aber nicht richtig :) Es wechselt zwar zu verschiedenen Uhrzeiten das Hintergrundbild, aber nicht so wie er soll. Weder Local noch aufm Server funktionierts richtig.
    Hier mal der Code:

    PHP-Quellcode

    1. <?php
    2. $hour = date('H');
    3. if ($hour > 10 ) {
    4. $image = "1.jpeg";
    5. }
    6. elseif ($hour > 12 ) {
    7. $image = "2.jpeg";
    8. }
    9. elseif ($hour > 14 ) {
    10. $image = "3.jpeg";
    11. }
    12. elseif ($hour > 20 ) {
    13. $image = "4.jpeg";
    14. }
    15. elseif ($hour > 22 ) {
    16. $image = "5.jpeg";
    17. }
    18. else {
    19. $image = "6.jpeg";
    20. }
    21. $image = imagecreatefromjpeg( "$image" );
    22. if (!$image) { /* See if it failed */
    23. header("(anti-spam-(anti-spam-content-type:)) image/jpeg");
    24. $im = imagecreatetruecolor (150, 30); /* Create a blank image */
    25. $bgc = imagecolorallocate ($im, 255, 255, 200);
    26. $tc = imagecolorallocate ($im, 0, 0, 0);
    27. imagefilledrectangle ($im, 0, 0, 150, 30, $bgc);
    28. /* Output an errmsg */
    29. imagestring ($im, 1, 5, 5, "Error loading Image", $tc);
    30. imagejpeg($im);
    31. imagedestroy($im);
    32. die();
    33. }
    34. header("(anti-spam-(anti-spam-content-type:)) image/jpeg");
    35. imagejpeg($image);
    36. imagedestroy($image);
    37. ?>
    Alles anzeigen


    Ich möchte nun, das es ab 10 Uhr morgens Bild 1 nimmt. Ab 12 Uhr Bild 2. Ab 14 Uhr bis 20 Uhr, Bild 3. Ab 20 Uhr, Bild 4. Ab 22 Uhr, Bild 5. Und den Rest der Zeit, d.h von Nachts 24 Uhr bis morgens 9:59:59, Bild 6.

    Irgendwie haut das nicht ganz hin.. er zeigt mir jetzt gerade im Moment z.b (Es ist 18:53) Bild 1 an. Irgendwie stimmt da was nicht.
    Hab auch schon rumprobiert usw. aber komme nicht weiter. Kann wer helfen?

    danke!
  • Habs nun zum Glück selbst lösen können.
    Hier mal der Code, vielleicht braucht ihn mal jmd.

    PHP-Quellcode

    1. <?php
    2. $hour = date('H');
    3. if ($hour > 6 AND $hour <= 10 ) {
    4. $image = "1.jpeg";
    5. }
    6. elseif ($hour > 10 AND $hour <= 12 ) {
    7. $image = "2.jpeg";
    8. }
    9. elseif ($hour > 12 AND $hour <= 14 ) {
    10. $image = "3.jpeg";
    11. }
    12. elseif ($hour > 14 AND $hour <= 20 ) {
    13. $image = "4.jpeg";
    14. }
    15. elseif ($hour > 20 AND $hour <= 22 ) {
    16. $image = "5.jpeg";
    17. }
    18. else {
    19. $image = "6.jpeg";
    20. }
    21. $image = imagecreatefromjpeg( "$image" );
    22. if (!$image) { /* See if it failed */
    23. header("(anti-spam-(anti-spam-content-type:)) image/jpeg");
    24. $im = imagecreatetruecolor (150, 30); /* Create a blank image */
    25. $bgc = imagecolorallocate ($im, 255, 255, 200);
    26. $tc = imagecolorallocate ($im, 0, 0, 0);
    27. imagefilledrectangle ($im, 0, 0, 150, 30, $bgc);
    28. /* Output an errmsg */
    29. imagestring ($im, 1, 5, 5, "Error loading Image", $tc);
    30. imagejpeg($im);
    31. imagedestroy($im);
    32. die();
    33. }
    34. header("(anti-spam-(anti-spam-content-type:)) image/jpeg");
    35. imagejpeg($image);
    36. imagedestroy($image);
    37. ?>
    Alles anzeigen



    LG
  • EDIT: hm, ne Minute zu langsam...

    kann auch so nicht funktionieren ;)

    Quellcode

    1. if ($hour > 10 ) {
    2. $image = "1.jpeg";
    3. }
    4. elseif ($hour > 12 ) {
    5. $image = "2.jpeg";
    6. }
    7. elseif ($hour > 14 ) {
    8. $image = "3.jpeg";
    9. }
    10. elseif ($hour > 20 ) {
    11. $image = "4.jpeg";
    12. }
    13. elseif ($hour > 22 ) {
    14. $image = "5.jpeg";
    15. }
    16. else {
    17. $image = "6.jpeg";
    18. }
    Alles anzeigen

    wenn du dir dieses IF-Konstrukt mal anschaust passiert bei jeder Uhrzeit nach 10 folgendes: (z.b. um 15Uhr)
    er prüft in der ersten If-Schleife ob 15 größer als 10 ist. Das trifft zu, also geht er in den schleifenrumpf und ignoriert alle anderen elseifs.

    Du müsstest einfach nur das IF-Konstrukt so umbauen, dass du von "hinten" nach vorne durchgehst, also die reihenfolge der ifs umkehrst..
    also erst

    Quellcode

    1. if ($hour > 22 )

    dann

    Quellcode

    1. elseif ($hour > 20 )

    usw.
  • Hi,

    ne switch Konstruktion würde das ganze noch "verschönern" und übersichtlicher machen.

    Quellcode

    1. switch($hour){
    2. default:
    3. $image = "6.jpeg";
    4. break;
    5. case 10:
    6. $image = "1.jpeg";
    7. break;
    8. case 12:
    9. $image = "2.jpeg";
    10. break;
    11. case 14:
    12. $image = "3.jpeg";
    13. break;
    14. case 20:
    15. $image = "4.jpeg";
    16. break;
    17. case 22:
    18. $image = "5.jpeg";
    19. break;
    20. }
    Alles anzeigen
  • Habs >= gemacht, ändert aber leider nichts.
    MAMP also auch T-Online geben im Moment 12:04:09 obwohl es gerade 12:40. ist.

    Edit: Hier nochmal mein aktueller Code.

    Quellcode

    1. <?php
    2. $hour = date('H') ;
    3. if ($hour >= 6 AND $hour <= 12 ) {
    4. $image = "1.jpeg";
    5. }
    6. elseif ($hour >= 12 AND $hour <= 14 ) {
    7. $image = "2.jpeg";
    8. }
    9. elseif ($hour >= 14 AND $hour <= 20 ) {
    10. $image = "3.jpeg";
    11. }
    12. elseif ($hour >= 20 AND $hour <= 22 ) {
    13. $image = "4.jpeg";
    14. }
    15. elseif ($hour >= 22 AND $hour <= 24 ) {
    16. $image = "5.jpeg";
    17. }
    18. else {
    19. $image = "6.jpeg";
    20. }
    21. $image = imagecreatefromjpeg( "$image" );
    22. if (!$image) { /* See if it failed */
    23. header("(anti-spam-(anti-spam-content-type:)) image/jpeg");
    24. $im = imagecreatetruecolor (150, 30); /* Create a blank image */
    25. $bgc = imagecolorallocate ($im, 255, 255, 200);
    26. $tc = imagecolorallocate ($im, 0, 0, 0);
    27. imagefilledrectangle ($im, 0, 0, 150, 30, $bgc);
    28. /* Output an errmsg */
    29. imagestring ($im, 1, 5, 5, "Error loading Image", $tc);
    30. imagejpeg($im);
    31. imagedestroy($im);
    32. die();
    33. }
    34. header("(anti-spam-(anti-spam-content-type:)) image/jpeg");
    35. imagejpeg($image);
    36. imagedestroy($image);
    37. ?>
    Alles anzeigen