php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 21-01-2008, 18:21
nichtsooft
 Registrierter Benutzer
Links : Onlinestatus : nichtsooft ist offline
Registriert seit: Apr 2006
Ort: Wien [AUT]
Beiträge: 385
nichtsooft ist zur Zeit noch ein unbeschriebenes Blatt
nichtsooft eine Nachricht über ICQ schicken
Standard Kalender - Verflixter Oktober!

Huhu!

Einleitung:
Ganz kurz nur...:
Ich hab hier einen kleinen Kalender (Monatsansicht) der eigentlich jeden Monat außer im Oktober super läuft!

Der Fehler:
Siehe: http://nichtsooft.at/Marianum/test/month.php?month=10

Dier Frage:
Kann mir jmd sagen was ich so falsch mache!?

PHP-Code:
<?php

define
("EINTAG", (60*60*24));

$monate[] = 'Jänner';
$monate[] = 'Februar';
$monate[] = 'März';
$monate[] = 'April';
$monate[] = 'Mai';
$monate[] = 'Juni';
$monate[] = 'Juli';
$monate[] = 'August';
$monate[] = 'September';
$monate[] = 'Oktober';
$monate[] = 'November';
$monate[] = 'Dezember';

$tage[] = 'Montag';
$tage[] = 'Dienstag';
$tage[] = 'Mittwoch';
$tage[] = 'Donnerstag';
$tage[] = 'Freitag';
$tage[] = 'Samstag';
$tage[] = 'Sonntag';

$tagk[] = 'Mo';
$tagk[] = 'Di';
$tagk[] = 'Mi';
$tagk[] = 'Do';
$tagk[] = 'Fr';
$tagk[] = 'Sa';
$tagk[] = 'So';

$dbgs[] ='#fffce3';
$dbgs[] ='#fffce3';
$dbgs[] ='#fffce3';
$dbgs[] ='#fffce3';
$dbgs[] ='#fffce3';
$dbgs[] ='#e3ecff';
$dbgs[] ='#b4cbff';


$tablewidth 300;

IF (!isset(
$_GET[month])) {
 
$month getdate();
 
$month =  $month[mon];
} ELSE {
 
$month $_GET[month];
}
IF (!isset(
$_GET[year])) {
 
$year getdate();
 
$year =  $year[year];
} ELSE {
 
$year $_GET[year];
}


$hour 0;
$minute 0;
$secund 0;
$day 1;
$cellwidth round($tablewidth 70);
  
$start mktime(000$month$day$year);

echo 
$month.'.'.$year;
echo 
"<TABLE CELLSPACING=\"1\" CELLPADDING=\"0\" STYLE=\"width: ".$tablewidth."px; border: 0px;";
echo 
"background-color: #b4b4b4; font-family: Arial;\">\n";
echo 
"\t<TR>\n";
$cnt 0;
 FOREACH (
$tagk as $tag) {
  IF (
$cnt == 6) {
   echo 
"\t<TD STYLE=\"width: auto; height: 21px; font-size: 12px; background-color: #fff;"
   
echo "text-align: center;\"><B>".$tag."</B></TD>\n";
  } else {
   echo 
"\t<TD STYLE=\"width: ".$cellwidth."px; height: 21px;"
   
echo "font-size: 12px; background-color: #fff;"
 
text-aligncenter;"><B>".$tag."</B></TD>\n";
  }
  
$cnt++;
 }
 echo 
"\t</TR>\n";
 echo 
"\t<TR>\n";
 
$cnt 0;
 FOR (
$zaehler 1$zaehler < (6*7); $zaehler++) {
  
$daterun getdate($start);

   IF (((
$cnt) % 7) == && $cnt 0) {
       IF (
$daterun[mon] != $month) {
            break;
       }
       echo 
"\t</TR><TR>\n";
       
$cnt 0;
   }

   IF (
$zaehler $daterun[wday] || $daterun[mon] != $month) {
       echo 
"\t<TD STYLE=\"font-size: 12px; background-color: #fff;\">&nbsp;</TD>\n";

   } ELSEIF (
$daterun[mon] == $month && $vortag != $daterun[mday]) {

       echo 
"\t<TD STYLE=\"font-size: 12px; background-color: ".$dbgs[$cnt].";"
       
echo "text-align: center;\" TITLE=\"".$title."\">\n";
       echo 
"\t\t".$daterun[mday]."\n";
//       echo "\t\t (".$zaehler.")\n";
       
echo "\t</TD>\n";
       
$vortag $daterun[mday];
       
$start += EINTAG;
   }
   
$cnt++;
 }




 echo 
"\t</TR>\n";
echo 
"</TABLE><BR>\n";

?>
Danke für eure Hilfe!
__________________
WHILE (!$asleep) { $sheep++; }

Geändert von nichtsooft (21-01-2008 um 18:46 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 21-01-2008, 18:33
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Lesen und ändern http://www.php-resource.de/forum/sho...threadid=50454 aber dalli
Mit Zitat antworten
  #3 (permalink)  
Alt 21-01-2008, 18:55
nichtsooft
 Registrierter Benutzer
Links : Onlinestatus : nichtsooft ist offline
Registriert seit: Apr 2006
Ort: Wien [AUT]
Beiträge: 385
nichtsooft ist zur Zeit noch ein unbeschriebenes Blatt
nichtsooft eine Nachricht über ICQ schicken
Standard

Post ist abgeändert!
Ich muß dazu sagen, daß ich mit dem PHP-Tag bei echo mit Anführungszeichen an Stelle von Hochkomma hier schon mal probs hatte. Darum wollte ich den CODE-Tag einsetzen.
Den Code hab ich mal umgebrochen, daß nicht irgendjmd mit 1024px meint es gäbe Scrollbalken.
Den fehler hab ich als Link hinzugepckt.
__________________
WHILE (!$asleep) { $sheep++; }
Mit Zitat antworten
  #4 (permalink)  
Alt 21-01-2008, 21:02
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

erstmal dein Script http://de3.php.net/manual/en/languag...es.array.donts entsprechend korrigieren, dann können wir weiter gucken, falls der Fehler noch da ist.
Mit Zitat antworten
  #5 (permalink)  
Alt 21-01-2008, 21:10
nichtsooft
 Registrierter Benutzer
Links : Onlinestatus : nichtsooft ist offline
Registriert seit: Apr 2006
Ort: Wien [AUT]
Beiträge: 385
nichtsooft ist zur Zeit noch ein unbeschriebenes Blatt
nichtsooft eine Nachricht über ICQ schicken
Standard

Gut korrigiert....

Läuft trotzdem nicht! Der Oktober wird weiterhin nur bis zum 26. angezeigt.
__________________
WHILE (!$asleep) { $sheep++; }
Mit Zitat antworten
  #6 (permalink)  
Alt 21-01-2008, 21:35
Hopka
 PHP Expert
Links : Onlinestatus : Hopka ist offline
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.172
Hopka ist zur Zeit noch ein unbeschriebenes Blatt
Hopka eine Nachricht über ICQ schicken
Standard

Dein Code ist unlesbar und enthält sehr viel Mist. Da kann doch niemand durchsteigen.

Zu deinem Problem: du gehst hier fälschlicherweise davon aus, dass ein Tag 60 * 60 * 24 (= 86400) Sekunden hat. Das ist bei der Zeitumstellung aber nicht der Fall. Und die ist nun mal am letzten Sonntag im Oktober - genau da, wo dein Code versagt.

Also am besten nochmal von vorne anfangen und vorher überlegen, was der Code eigentlich machen soll. Und beim Rechnen mit Timestamps nicht einfach Sekunden dazuzählen, sondern die Datumsfunktionen, insbesondere mktime und strtotime, benutzen.
__________________
hopka.net!
Mit Zitat antworten
  #7 (permalink)  
Alt 21-01-2008, 21:57
nichtsooft
 Registrierter Benutzer
Links : Onlinestatus : nichtsooft ist offline
Registriert seit: Apr 2006
Ort: Wien [AUT]
Beiträge: 385
nichtsooft ist zur Zeit noch ein unbeschriebenes Blatt
nichtsooft eine Nachricht über ICQ schicken
Standard

ok wenn die Annahme daß ein Tag 86400sec. dauert falsch ist, was ja definitiv bewiesen ist...
Kann mir jmd ne bessere Methode verraten!?
Ich könnte mir schon vorstellen im $day-wert von mktime() immer +1 weiterzuschreiten, jedoch wie soll ich vorab wissen bis wohin ich gehen darf/soll? Manche Monate haben mehr Tage als andere... ^^
__________________
WHILE (!$asleep) { $sheep++; }
Mit Zitat antworten
  #8 (permalink)  
Alt 21-01-2008, 22:17
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Vielleicht ist auch diese Klasse recht nützlich für dich, damit bleibts übersichtlich!
Mit Zitat antworten
  #9 (permalink)  
Alt 22-01-2008, 03:46
Peacie
 Registrierter Benutzer
Links : Onlinestatus : Peacie ist offline
Registriert seit: Nov 2003
Beiträge: 341
Peacie ist zur Zeit noch ein unbeschriebenes Blatt
Peacie eine Nachricht über ICQ schicken Peacie eine Nachricht über AIM schicken Peacie eine Nachricht über Yahoo! schicken
Standard

irre ich mich oder gibt nicht date ein paar funktionen vor, um festzustellen wieviel tage ein bestimmter monat hat :P
__________________
Mibau Datendesign - Online Ferienwelt
Mit Zitat antworten
  #10 (permalink)  
Alt 22-01-2008, 08:47
RanzigeMilch
 Registrierter Benutzer
Links : Onlinestatus : RanzigeMilch ist offline
Registriert seit: May 2005
Ort: Darmstadt
Beiträge: 757
RanzigeMilch ist zur Zeit noch ein unbeschriebenes Blatt
RanzigeMilch eine Nachricht über ICQ schicken
Standard

es ist sogar so dass wenn man z.b. 32 mai eingibt automatisch der 1. juni genommen wird oder irre ich mich?
ansonsten hast du recht das man mit "t" bei date die anzahl der tage im monat erhält.
ansonsten wär da noch strtotime("+1 day", $timestamp)
ich habe mal bei nem terminplaner immer mit überschreiten von 24uhr gearbeitet was mir bei den zeitumstellungstagen dann auch aus dem ruder lief.
zudem kann man prüfen ob das datum in die sommerzeit fällt oder nicht usw
__________________
Die Milch bleibt ranzig!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:24 Uhr.