php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2004

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 05.11.2004, 09:26  
Gast
 
Beiträge: n/a
Standard 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
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 05.11.2004, 09:30  
Gast
 
Beiträge: n/a
Standard

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]";
 
Alt 05.11.2004, 10:06  
Gast
 
Beiträge: n/a
Standard

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?
 
Alt 05.11.2004, 10:19  
Gast
 
Beiträge: n/a
Standard

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
 
Alt 05.11.2004, 10:52  
Gast
 
Beiträge: n/a
Standard Re: Advent Advent KEIN Lichtlein brennt

Zitat:
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.
 
Alt 05.11.2004, 11:52  
Gast
 
Beiträge: n/a
Standard

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
 
Alt 05.11.2004, 11:55  
Gast
 
Beiträge: n/a
Standard

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.
 
Alt 05.11.2004, 14:46  
Gast
 
Beiträge: n/a
Standard

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 ----
 
Alt 05.11.2004, 15:13  
Gast
 
Beiträge: n/a
Standard

Zitat:
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);
 
Alt 05.11.2004, 16:05  
Gast
 
Beiträge: n/a
Standard

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.
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
script advent, advent, advent datephp, php advent date, software kerze php, php advent date sunday, kerze gif, kerzen 4 advent .gif, zeilen die 4 kerzen im advent, www gif.advent, advent kerze.gif, gif advent, creative commons gif advent, 1. advent kerze gif

Alle Zeitangaben in WEZ +2. Es ist jetzt 02:56 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.