php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 29.11.2004, 14:28  
Benutzer
 
Registriert seit: 04.01.2004
Beiträge: 42
inkai
Standard Auswerten von Zeiträumen

Ich habe eine MySQL-Datenbank, in der Zeiträume eingetragen werden. Ich möchte, dass wenn der Zeitraum aktuelle ist, eine besondere farblich markierung erfolgt.

Beispiel:
Zeitraum 10.06.2005 bis 10.06.2005
Hierbei ist es einfach über eine IF-Anweisung den aktuellen date-Wert des Monats und des Tages auszuwerten und mit den eingetragenen Daten zu vergleichen.

Schwerer wird dies bei folgendem Beispiel:
Zeitraum 20.07.2005 bis 10.08.2005
Hier ist der End-Tag niedriger als der Anfang-Tag. Darüber hinaus liegt ein Sprung in der Monats-Zahl vor.

Hat jemand für dieses Problem eine Lösung?

Gruß
Kai
inkai ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 29.11.2004, 15:03  
Gast
 
Beiträge: n/a
Standard

Um das sauber zu lösen würde ich Anfangs- und End-Datum in die Sekundenzeit umrechnen und dann mit time() vergleichen:

$t1=mktime(0,0,0,substr($anfang,3,2),substr($anfan g,0,2),substr($anfang,6,4));
$t2=mktime(0,0,0,substr($ende,3,2)+1,substr($ende, 0,2),substr($ende,6,4));

Dann heisst deine If-Bedingung:

if (($t1<=time()) && ($t2>=time()))

Wolfgang
http://www.zackbagga.com
 
Alt 29.11.2004, 15:11  
Benutzer
 
Registriert seit: 04.01.2004
Beiträge: 42
inkai
Standard

Dabei gehst Du davon aus, dass das gesamte Ur-Datum (20.07.2005) auf eine Variable ($anfang) gelesen wurde, stimmts?
inkai ist offline  
Alt 29.11.2004, 15:26  
Gast
 
Beiträge: n/a
Standard

Ja und das Enddatum in $ende... ist das nicht der Fall? In welchem Format kriegste denn den Zeitraum gebacken?
 
Alt 30.11.2004, 16:14  
Benutzer
 
Registriert seit: 04.01.2004
Beiträge: 42
inkai
Standard

Ich habe in der Datenbank folgende Felder definiert:

Anfangtag
Anfangmonat
Endetag
Endemonat

Aber es ist ja kein Problem die Anfang-Felder und die Ende-Felder jeweils auf eine gemeinsame Variable einzulesen.
inkai ist offline  
Alt 30.11.2004, 16:22  
Benutzer
 
Registriert seit: 04.01.2004
Beiträge: 42
inkai
Standard

Es funktioniert. Vielen Dank!
inkai ist offline  
Alt 11.06.2005, 14:45  
Benutzer
 
Registriert seit: 04.01.2004
Beiträge: 42
inkai
Standard Funktionsfehler im Script

Das Script ist mittlerweile in Gang und funktionierte bisher auch ganz ordentlich. Sobald ein Zeitraum anbricht wird dies erkannt. Jedoch ist mir heute folgendes aufgefallen. Auch wenn der angegebene Zeitraum vorüber ist, wird er weiterhin als "aktuell" angezeigt. Es wird weiterhin angezeigt, dass sich das aktuelle Datum zwischen den angegebenen Daten befindet. Die Zeit auf dem Webserver ist korrekt eingestellt. Hier ein Ausschnitt aus dem Quelltext:

PHP-Code:
  $gesanfang "$anfangtag.$anfangmonat.2005";
  
$gesende "$endetag.$endemonat.2005";
  
$t1=mktime(0,0,0,substr($gesanfang,3,2),substr($gesanfang,0,2),substr($gesanfang,6,4)); 
  
$t2=mktime(0,0,0,substr($gesende,3,2)+1,substr($gesende,0,2),substr($gesende,6,4)); 

  if ((
$t1<=time()) && ($t2>=time()))
  {
    echo 
"Im Einsatz";
  }
  else
  {
    echo 
"Nicht im Einsatz";
  } 
Für Tips zur Lösung des Problems wäre ich sehr dankbar.
inkai ist offline  
Alt 11.06.2005, 16:43  
axo
Erfahrener Benutzer
 
Registriert seit: 24.12.2004
Beiträge: 1.814
axo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

das gehört eigentlich unter 'wtf' ...
warum baust du zuerst mit $gesanfang einen string zusammen, nur um ihn in der übernächsten zeile mit substr() wieder auseinanderzunehmen - schließlich ist substr($gesanfang,3,2) wirklich haargenau das selbe wie $anfangsmonat.
... und das selbe gilt für alle anderen substr() 's .
räum doch erstmal auf, vielleicht wird's dann klarer, wo dein fehler liegt.
axo ist offline  
Alt 11.06.2005, 17:51  
Benutzer
 
Registriert seit: 04.01.2004
Beiträge: 42
inkai
Standard

Hab das ganze jetzt mal so umgebaut:
PHP-Code:
$t1=mktime(0,0,0,$anfangmonat,$anfangtag,"2005");
$t2=mktime(0,0,0,$endemonat,$endetag,"2005"); 
Und siehe da, es funktioniert. Danke für den Tip
inkai ist offline  
Alt 11.06.2005, 18:05  
axo
Erfahrener Benutzer
 
Registriert seit: 24.12.2004
Beiträge: 1.814
axo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

bitte, bitte ... du hast wahrscheinlich vergessen, bei substr() die punkte mitzuzählen.

ansonsten:
die anführungszeichen um die 2005 müssen nicht sein. du darfst und sollst zahlen zahlen sein lassen.

PHP-Code:
<?php
$aktuellesJahr 
2005// am besten an den anfang des skripts, 
 // wo es leicht zu finden ist.

...
...

$t1 mktime(,,,,,$aktuellesJahr); ...
$t2 mktime(,,,,,,$aktuellesJahr); ...
?>
grüße
axo
axo ist offline  
 


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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
XML auslesen und auswerten PeopleSaw PHP Tipps 2008 7 21.05.2008 14:20
Text mit php auswerten SteiniKeule PHP Tipps 2008 18 06.05.2008 14:30
Checkbox auswerten Exituz23 PHP Tipps 2008 1 03.04.2008 18:31
csv datei mit php auswerten emmi PHP-Fortgeschrittene 6 07.12.2007 08:28
Formular auswerten, aber wie Ricardando PHP Tipps 2008 14 05.09.2007 11:55
[Erledigt] String in if-Abfrage auswerten? PHP Tipps 2006 6 20.11.2006 21:22
probleme mit: formulardaten mit php auswerten p23h43p PHP Tipps 2006 2 22.03.2006 08:35
google Ergebnis in PHP auswerten dh1sbg PHP-Fortgeschrittene 4 12.11.2005 22:21
Radiobutton aus Formular auswerten Plague PHP Tipps 2005-2 2 05.09.2005 07:38
<option value="1">.... auswerten PHP Tipps 2005-2 4 09.08.2005 13:41
Auswerten von LIST per ftp_raw Schaelle PHP Tipps 2005-2 2 01.07.2005 16:15
XML Datei mit PHP auswerten PHP Tipps 2005 2 22.03.2005 19:16
auswerten von umfragen. PHP Tipps 2005 17 24.01.2005 09:02
Formular auf selber seite auswerten Calli PHP Tipps 2004-2 7 01.12.2004 13:36
Problem beim auswerten von $_POST Schiedsrichter PHP Tipps 2004 2 15.10.2004 21:12


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:43 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.