Ankündigung

Einklappen
Keine Ankündigung bisher.

Advent Advent KEIN Lichtlein brennt

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Advent Advent KEIN Lichtlein brennt

    Hi,
    ich würde gerne als kleinen Gag 0-4 Kerzen (je nach Advent) in meiner Startseite einbauen.

    Hat von Euch jemand eine function die mir zurückgibt in welcher Adventswoche man gerade ist?

    Danke,

    DeZent

  • #2
    Einfach das Datum erstmal holen, in den Kalender gucken, und if abfragen machen:

    if($tag>=3) echo "[img]kerze.jpg[/img]";
    if($tag>=10) echo "[img]kerze.jpg[/img]";
    if($tag>=17) echo "[img]kerze.jpg[/img]";
    if($tag>=24) echo "[img]kerze.jpg[/img]";

    Kommentar


    • #3
      das wird wohl eher nur pi mal Dauem funktionieren.
      Was wenn im nächsten Jahr z.B. der 24. ein Sonntag , und somit der 4. Advent ist?

      Kommentar


      • #4
        Hallo,
        da gibt es etwas, um den Monat, den Tag im Monat mit dem Wochentag zu verbinden:
        Code:
        <? //kal_func.php    Funktionen zur Datumsberechnung
        #######################################
        # Copyright des Scriptes by computer privat - J. J. - 2003/2004
        #######################################
        function monx($x) {
          $heute= mktime (0,0,0, date("m"),date("d"), date ("Y"));
          $tag_heute= (int)strftime("%j", $heute);
          $tag_x= mktime (0,0,0, date("m"),date("d")-$tag_heute+$x, date ("Y"));
          $x_monat= (int)strftime("%m", $tag_x);
          return $x_monat;
        }
        function tagmonx($x) {
          $heute= mktime (0,0,0, date("m"),date("d"), date ("Y"));
          $tag_heute= (int)strftime("%j", $heute);
          $tag_x= mktime (0,0,0, date("m"),date("d")-$tag_heute+$x, date ("Y"));
          $x_tagmon= (int)strftime("%d", $tag_x);
          return $x_tagmon;
        }
        function tagnamx($x) {
          $heute= mktime (0,0,0, date("m"),date("d"), date ("Y"));
          $tag_heute= (int)strftime("%j", $heute);
          $tag_x= mktime (0,0,0, date("m"),date("d")-$tag_heute+$x, date ("Y"));
          $x_wotaname= strftime("%a", $tag_x);
          if ($x_wotaname =="Mon")
          {
          	$x_wotaname = "Montag";
          }
          elseif ($x_wotaname =="Tue")
            {
          	$x_wotaname = "Dienstag";
          }
          elseif ($x_wotaname =="Wed")
          {
          	$x_wotaname = "Mittwoch";
          }
          elseif ($x_wotaname =="Thu")
          {
          	$x_wotaname = "Donnerstag";
          }
          elseif ($x_wotaname =="Fri")
          {
          	$x_wotaname = "Freitag";
          }
          elseif ($x_wotaname =="Sat")
          {
          	$x_wotaname = "Samstag";
          }
          elseif ($x_wotaname =="Sun")
          {
          	$x_wotaname = "Sonntag";
          }
          return $x_wotaname;
        }
        function tagnum($x) {
          $heute= mktime (0,0,0, date("m"),date("d"), date ("Y"));
          $tag_heute= (int)strftime("%j", $heute);
          $tag_x= mktime (0,0,0, date("m"),date("d")-$tag_heute+$x, date ("Y"));
          $x_wotanum= strftime("%w", $tag_x);
          return $x_wotanum;
        }
        function kwtagx($x) {
          $heute= mktime (0,0,0, date("m"),date("d"), date ("Y"));
          $tag_heute= (int)strftime("%j", $heute);
          $tag_x= mktime (0,0,0, date("m"),date("d")-$tag_heute+$x, date ("Y"));
          $x_kw= strftime("%U", $tag_x);
          return $x_kw;
        }
        function datx($x) {
          $heute= mktime (0,0,0, date("m"),date("d"), date ("Y"));
          $tag_heute= (int)strftime("%j", $heute);
          $tag_x= mktime (0,0,0, date("m"),date("d")-$tag_heute+$x, date ("Y"));
          $dat= strftime("%d %b %Y", $tag_x);
          return $dat;
        }
        ?>
        Dieses Script ruft man auf der Startseite auf mit:
        Code:
        include("kal_func.php");
        Und dann dort einbauen (Zeile für Zeile anpassen):
        Code:
        wochentag_finden();
        ...
        function wochentag_finden()
        {
        	$monat = date("m");
        	$tag=1;
        	for ($mon=1;$mon<13;$mon++)
        	{
            	$tag = monat_herein($mon,$tag);
            }
        }
        function monat_herein($mon,$z)
        {
        	$monat = date("m");
        	$vertretungstag = date("d");
        	while (monx($z)==$mon)
        	{
          		if ($vertretungstag == tagmonx($z) AND $monat == monx($z))
          		{
        			global $richtigertag;
        			$richtigertag = tagnamx($z);
            	}
        		$z+=1;
        	}
        	return $z;
        }
        Dabei ist auf die Variablen zu achten und $monat muss unbedingt vorher geholt werden.
        Hoffentlich nützt es was.
        Grüße,
        Joannis

        Kommentar


        • #5
          Re: Advent Advent KEIN Lichtlein brennt

          Zitat von dezent
          Hat von Euch jemand eine function die mir zurückgibt in welcher Adventswoche man gerade ist?
          Hier ein Beispiel:
          http://test.php-help.info/strtotime-1/ (Quelltext wird angezeigt)

          Den Rest mußte selber dazubasteln.

          Kommentar


          • #6
            danke,
            genau das habe ich gesucht...

            Da hätte ich auch selbst draufkommen können. Hab mich etwas verheddert, und schon ist eine simple Adventsabfrage auf 100 Zeilen Code explodiert und hat trotzdem nicht vernünfig funktioniert.

            deZent

            Kommentar


            • #7
              Wenn dir das zuviel Code ist nimm mein Beispiel, hast doch immer 11 Monate Zeit das für's nächste Jahr zu ändern, oder schreibst schonmal im voraus.

              Kommentar


              • #8
                PHP-Code:
                function advent() {

                $dayadvent = (date('w'strtotime(sprintf('24 December %s'date('Y'))))==0)
                        ? 
                27
                        
                20;

                $startadvent strtotime('sunday'strtotime(sprintf('%s November %s'$dayadventdate('Y'))));

                $weihnachten="24 December ".date('Y');
                $advent1 strtotime('sunday + 7 day'$startadvent);
                $advent2 strtotime('sunday + 7 day'$advent1);
                $advent3 strtotime('sunday + 7 day'$advent2);
                $advent4 strtotime('sunday + 7 day'$advent3);
                $weihnachten strtotime("$weihnachten");
                $kerzen=0;
                $jetzt=time();
                if ((
                $jetzt>$advent1) && ($jetzt<=$weihnachten)) $kerzen=4;
                if ((
                $jetzt>$advent1) && ($jetzt<$advent4)) $kerzen=3;
                if ((
                $jetzt>$advent1) && ($jetzt<$advent3)) $kerzen=2;
                if ((
                $jetzt>$advent1) && ($jetzt<$advent2)) $kerzen=1;

                if (
                $kerzen>0){
                  echo 
                'div style="position:absolute; top:20px; left:70px;">';
                    if (
                $kerzen>0) echo "[img]../images/kerze.gif[/img]";
                    if (
                $kerzen>1) echo "[img]../images/kerze.gif[/img]";
                    if (
                $kerzen>2) echo "[img]../images/kerze.gif[/img]";
                    if (
                $kerzen>3) echo "[img]../images/kerze.gif[/img]";
                  echo 
                '</div>';
                }

                return 
                TRUE;
                }

                advent(); 
                Die Function nehme ich nur, damit ich sie in meine common.php auslagern kann.

                Damit das Skript nicht das ganze Jahr gecheckt wird einfach ne kleine Abfragew vor advent() ob schon der 25.11 oder so ist.

                --- Großteile des Codes von meikel ----

                Kommentar


                • #9
                  Zitat von dezent
                  --- Großteile des Codes von meikel ----
                  Richtigstellung:
                  Das
                  Code:
                  $weihnachten = strtotime("$weihnachten");
                  stammt nicht von mir. Bei mir würde das so aussehen:
                  Code:
                  $weihnachten = strtotime($weihnachten);

                  Kommentar


                  • #10
                    Zusatz:
                    hier die Kurzversion:
                    http://test.php-help.info/strtotime-3/ (Quelltext wird angezeigt)

                    Die optisch ansprechendere Darstellung der brennenden und nicht brennenden Kerze(n) überlasse ich den Grafikfuzzies.

                    Kommentar

                    Lädt...
                    X