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 Bewertung: Bewertung: 1 Stimmen, 1,00 durchschnittlich.
  #1 (permalink)  
Alt 11-12-2020, 09:47
Andreas-LE
 Registrierter Benutzer
Links : Onlinestatus : Andreas-LE ist offline
Registriert seit: Nov 2020
Beiträge: 27
Andreas-LE befindet sich auf einem aufstrebenden Ast
Standard Feiertage

Ich habe folgendes array:
PHP-Code:
if ($feiertage == "Sachsen") {

$ftage = array("01.01" =>"Neujahrstag",
               
"03.04" =>"Karfreitag",
               
"06.04" =>"Ostermontag",
               
"01.05" =>"Tag der Arbeit",
               
"14.05" =>"Christi Himmelfahrt",
               
"25.05" =>"Pfingstmontag",
               
"04.06" =>"Fronleichnam\n(LK Bautzen,Westlausitzkreis)",
               
"03.10" =>"Tag der Deutschen Einheit",
               
"31.10" =>"Reformationstag",
               
"18.11" =>"Buß- u. Bettag",
               
"25.12" =>"1. Weihnachtsfeiertag",
               
"26.12" =>"2. Weihnachtsfeiertag"
               
);

               } 

Auslesen tu ich wie folgt:
PHP-Code:
   foreach($ftage as $datum => $feiertag) {
   
$datumfeiertag $datum.".".$jahr;


$timestamp_montag strtotime("{$jahr}-W{$kalenderwoche}");
$time_mo date("d.m.Y"$timestamp_montag);
if (
$time_mo == $datumfeiertag) {
$planmontag "<font color='red'>$time_mo <img src='../images/hilfe.png' title='{$feiertag}'/></font>";
} else {
$planmontag $time_mo;
}} 

Tage natürlich für die gesamte Woche!



Nur leider markiert es mir nur den letzten Feiertag aus dem array.
Mit Zitat antworten
  #2 (permalink)  
Alt 12-12-2020, 20:01
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.784
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Worked as designed
PHP-Code:
$planmontag '';
foreach(
$ftage as $datum => $feiertag) {
  ...
  if (
$time_mo == $datumfeiertag) {
    
$planmontag .= "<font color='red'>$time_mo <img src='../images/hilfe.png' title='{$feiertag}'/></font>";
  } else {
    
$planmontag .= $time_mo;
  }
}
echo 
$planmontag
Stichwort Zeichenkettenverknüpfung.

Gruß
Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #3 (permalink)  
Alt 12-12-2020, 21:37
Andreas-LE
 Registrierter Benutzer
Links : Onlinestatus : Andreas-LE ist offline
Registriert seit: Nov 2020
Beiträge: 27
Andreas-LE befindet sich auf einem aufstrebenden Ast
Standard

Erstmal Danke.


So hatte ich es auch schon, nur leider kommt das Ergebnis da raus:


Fr, 25.12.202025.12.202025.12.202025.12.202025.12.202025.12.202025.12.202025.12.202025.12.202025.12.202025.12.2020 25.12.2020


Es werden genau alle Arraypunkte (12 mal) angezeigt.
Mit Zitat antworten
  #4 (permalink)  
Alt 13-12-2020, 19:36
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.784
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Ich dachte, du wolltest eine Liste ausgeben. Dann sag doch mal, was genau du vorhast.

Gruß
Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #5 (permalink)  
Alt 13-12-2020, 19:45
Andreas-LE
 Registrierter Benutzer
Links : Onlinestatus : Andreas-LE ist offline
Registriert seit: Nov 2020
Beiträge: 27
Andreas-LE befindet sich auf einem aufstrebenden Ast
Standard

Ich hab einen "Schichtplan" mit Datum der KW. Mo bis So.


Er soll nachschauen, ob Tage davon Feiertage sind.
Anzeigen tut es mir nur den 26.12. nicht den 25.12.
Mit Zitat antworten
  #6 (permalink)  
Alt 13-12-2020, 19:49
Andreas-LE
 Registrierter Benutzer
Links : Onlinestatus : Andreas-LE ist offline
Registriert seit: Nov 2020
Beiträge: 27
Andreas-LE befindet sich auf einem aufstrebenden Ast
Standard

Aber das ist momentan nicht wirklich das wichtigste, denn sas Zeiten speichern und bearbeiten funktioniert noch nicht. Andere hier im Forum trauen sich auch nicht daran.
Mit Zitat antworten
  #7 (permalink)  
Alt 14-12-2020, 09:18
chorn
 Registrierter Benutzer
Links : Onlinestatus : chorn ist offline
Registriert seit: Nov 2011
Beiträge: 207
chorn befindet sich auf einem aufstrebenden Ast
Standard

Dein Code gibt ja auch jedes Ergebnis aus, wenn du das nicht willst, musst du das halt anpassen, die Stelle ist

PHP-Code:
  if ($time_mo == $datumfeiertag) {
    
$planmontag .= "<font color='red'>$time_mo <img src='../images/hilfe.png' title='{$feiertag}'/></font>";
  } else {
    
$planmontag .= $time_mo;
  } 
Mit Zitat antworten
  #8 (permalink)  
Alt 14-12-2020, 10:17
Andreas-LE
 Registrierter Benutzer
Links : Onlinestatus : Andreas-LE ist offline
Registriert seit: Nov 2020
Beiträge: 27
Andreas-LE befindet sich auf einem aufstrebenden Ast
Standard

Ja und ohne .= gibt er nur die letzte Stelle 26.12. aus und mit .= zeigt er den 25.12. und 26.12. aber 12 mal.
Mit Zitat antworten
  #9 (permalink)  
Alt 14-12-2020, 10:39
chorn
 Registrierter Benutzer
Links : Onlinestatus : chorn ist offline
Registriert seit: Nov 2011
Beiträge: 207
chorn befindet sich auf einem aufstrebenden Ast
Standard

OK. Problem gelöst? Weil Anforderung nicht definiert.
Mit Zitat antworten
  #10 (permalink)  
Alt 14-12-2020, 10:44
Andreas-LE
 Registrierter Benutzer
Links : Onlinestatus : Andreas-LE ist offline
Registriert seit: Nov 2020
Beiträge: 27
Andreas-LE befindet sich auf einem aufstrebenden Ast
Standard

wie Anforderung nicht definiert?
Mit Zitat antworten
  #11 (permalink)  
Alt 14-12-2020, 11:56
chorn
 Registrierter Benutzer
Links : Onlinestatus : chorn ist offline
Registriert seit: Nov 2011
Beiträge: 207
chorn befindet sich auf einem aufstrebenden Ast
Standard

Hat Peter auch schon angesprochen

Zitat:
Dann sag doch mal, was genau du vorhast.
Du sagst es zeigt den 25.12. nicht an, dabei taucht der 25.12. in deiner Liste auf. Dann sagst du es zeigt dir ein Datum 12 mal an - stimmt, genau wie der Code das vorgibt, also alles OK.

Zitat:
Er soll nachschauen, ob Tage davon Feiertage sind.
Ja tut das Script doch.
Mit Zitat antworten
  #12 (permalink)  
Alt 14-12-2020, 12:26
Andreas-LE
 Registrierter Benutzer
Links : Onlinestatus : Andreas-LE ist offline
Registriert seit: Nov 2020
Beiträge: 27
Andreas-LE befindet sich auf einem aufstrebenden Ast
Standard

In diesem Forum kann ich nur sagen, hilf Dir selbst, sonst bist Du verlassen.

Das ist die Lösung und funktioniert tatellos!


PHP-Code:
$timestamp_montag strtotime("{$jahr}-W{$kalenderwoche}");
$time_mo date("d.m.Y"$timestamp_montag);

$time_mox date("d.m"$timestamp_montag);
if(
array_key_exists($time_mox$ftage)) {
  
$planmontag "<font color='red'>$time_mo <img src='../images/hilfe.png' title='$ftage[$time_mox]'/></font>";
} else {
  
$planmontag $time_mo;


Geändert von Andreas-LE (14-12-2020 um 12:39 Uhr)
Mit Zitat antworten
  #13 (permalink)  
Alt 14-12-2020, 14:36
chorn
 Registrierter Benutzer
Links : Onlinestatus : chorn ist offline
Registriert seit: Nov 2011
Beiträge: 207
chorn befindet sich auf einem aufstrebenden Ast
Standard

Lösung für welches Problem? Hast du immer noch nicht gesagt. Du erzählst doch nur Quatsch.
Mit Zitat antworten
  #14 (permalink)  
Alt 14-12-2020, 14:39
Andreas-LE
 Registrierter Benutzer
Links : Onlinestatus : Andreas-LE ist offline
Registriert seit: Nov 2020
Beiträge: 27
Andreas-LE befindet sich auf einem aufstrebenden Ast
Standard

Jetzt zeigt es alle Feiertage aus dem Array nach KW an!


KW 52 wird der 25. und 26.12. als Feiertag markiert und angezeigt, welcher Feiertag ist.
Mit Zitat antworten
  #15 (permalink)  
Alt 14-12-2020, 20:28
Andreas-LE
 Registrierter Benutzer
Links : Onlinestatus : Andreas-LE ist offline
Registriert seit: Nov 2020
Beiträge: 27
Andreas-LE befindet sich auf einem aufstrebenden Ast
Standard Lösung

Ich bin blutiger Anfänger in PHP, aber nun möchte ich wenigstens die Lösung hier darstellen.
Datumsvergleich mit gesetzter KW!

Feiertage:

PHP-Code:
$jahr date("Y");

// Feiertag
function feiertag($tag$monat$jahr) {
 
$ausgabe "";
 foreach (
feiertage($jahr) as $ftag => $zeitstempel) {
  if (
$zeitstempel == date("U"mktime(000$monat$tag$jahr))) {
   
$ausgabe .= $ftag;
  }
 }
 return 
$ausgabe;
}

// Feiertage (gesetzliche- kirchliche- und Brauchtumstage)
function feiertage($jahr) {

 
// Die festen Feiertage
 
$ftag["Neujahr"] = mktime(00011$jahr);
 
$ftag["Heilige 3 K&ouml;nige"] = mktime(00016$jahr);
 
$ftag["Internationaler Frauentag"] = mktime(00038$jahr);
 
$ftag["Tag der Arbeit"] = mktime(00051$jahr);
 
$ftag["Maria Himmelfahrt"] = mktime(000815$jahr);
 
$ftag["Tag der deutschen Einheit"] = mktime(000103$jahr);
 
$ftag["Reformationstag"] = mktime(0001031$jahr);
 
$ftag["Allerheiligen"] = mktime(000111$jahr);
 
$ftag["1. Weihnachtsfeiertag"] = mktime(0001225$jahr);
 
$ftag["2. Weihnachtsfeiertag"] = mktime(0001226$jahr);

 
$ftag["Valentinstag"] = mktime(000214$jahr);
 
$ftag["Walpurgisnacht"] = mktime(000430$jahr);
 
$ftag["Sommersonnenwende"] = mktime(000621$jahr);
 
$ftag["Erntedankfest"] = strtotime("Sunday October " $jahr);
 
$ftag["Kirchweih"] = strtotime("third Sunday October " $jahr); // Allerweltskirchweih!
 
$ftag["Halloween"] = mktime(0001031$jahr);
 
$ftag["Martinstag"] = mktime(0001111$jahr);
 
$ftag["Nikolaus"] = mktime(000126$jahr);
 
$ftag["Wintersonnenwende"] = mktime(0001222$jahr);
 
$ftag["Heiligabend"] = mktime(0001224$jahr);
 
$ftag["Silvester"] = mktime(0001231$jahr);
 
// Hier weitere Feiertage (Geburtstage etc.) eintragen

 // Zeitumstellung
 
$ftag["Winterzeit Ende!\nZeitumstellung auf Sommerzeit\n(3 Uhr - 1 Stunde vor)"] = strtotime('-1 week sun april' $jahr);
 
$ftag["Sommerzeit Ende!\nZeitumstellung auf Winterzeit\n(3 Uhr - 1 Stunde zur&uuml;ck)"] = strtotime('-1 week sun november' $jahr);

 
// Muttertag berechnen
 
$ftag["Muttertag"] = mktime(0005, (14 date("w"mktime(00050$jahr))), $jahr);

 
// Ostersonntag berechnen
 
$ostern strtotime("+ " . (easter_days($jahr)) . " days"mktime(000321$jahr));

 
// Die beweglichen Feiertage, abhängig vom Ostersonntag
 
$ftag["Karfreitag"] = strtotime("-2 day"$ostern);
 
$ftag["Ostersonntag"] = strtotime("0 day"$ostern);
 
$ftag["Ostermontag"] = strtotime("+1 day"$ostern);
 
$ftag["Ch. Himmelfahrt, Vatertag"] = strtotime("+39 day"$ostern);
 
$ftag["Pfingstsonntag"] = strtotime("+49 day"$ostern);
 
$ftag["Pfingstmontag"] = strtotime("+50 day"$ostern);
 
$ftag["Fronleichnam"] = strtotime("+60 day"$ostern);

 
$ftag["Rosenmontag"] = strtotime("-48 day"$ostern);
 
$ftag["Faschingsdienstag (Fastnacht)"] = strtotime("-47 day"$ostern);
 
$ftag["Aschermittwoch"] = strtotime("-46 day"$ostern);
 
$ftag["Palmsonntag"] = strtotime("-7 day"$ostern);
 
$ftag["Wei&szlig;er Sonntag"] = strtotime("+7 day"$ostern);

 
// Erster Advent berechnen
 
$advent strtotime("+1 sunday",mktime(0,0,0,11,27,$jahr));

 
// Die beweglichen Feiertage, abhängig vom ersten Advent
 
$ftag["Bu&szlig;- und Bettag "] = strtotime("-11 day"$advent);

 
$ftag["1. Advent "] = strtotime("+0 day"$advent);
 
$ftag["2. Advent "] = strtotime("+7 day"$advent);
 
$ftag["3. Advent "] = strtotime("+14 day"$advent);
 
$ftag["4. Advent "] = strtotime("+21 day"$advent);
 
$ftag["Totensonntag "] = strtotime("last sunday"$advent);
 
$ftag["Volkstrauertag "] = strtotime("-14 day"$advent);
 
asort($ftag);
 return 
$ftag;


Datumsvergleich:

PHP-Code:
// Montag
$timestamp_montag strtotime("{$jahr}-W{$kalenderwoche}");
$time_mo date("d.m.Y"$timestamp_montag);
$time_mox date("d.m"$timestamp_montag);
$teile explode("."$time_mox);
$feiertag feiertag($teile[0], $teile[1], $jahr); // Tag, Monat, Jahr
if ($feiertag !== "") {
$planmontag "<font color='red'>$time_mo <img src='../images/hilfe.png' title='$feiertag'/></font>";
} else {
    
$planmontag $time_mo;
    } 
Ich hab es bei mir noch verfeinert und nach Bundesland selectierbar gemacht.

Geändert von Andreas-LE (14-12-2020 um 20:40 Uhr)
Mit Zitat antworten
Antwort

Lesezeichen


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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Feiertage aussondern Trashkiller Archiv / Trash 10 08-01-2007 23:46
Feiertage TimoGoebel PHP Developer Forum 19 12-07-2006 16:26
Feiertage in USA galaxy2 PHP Developer Forum 4 17-01-2006 16:23
Kalender inklusive Feiertage skalu BRAINSTORMING PHP/SQL/HTML/JS/CSS 33 18-08-2004 22:21

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

Projektmanagement Damals und Heute
Projektmanagement Damals und HeuteWerfen Sie einen Blick auf das, was sich verändert hat, und entdecken Sie, wo die Zukunft dieses Gebietes hinsteuert.

18.01.2021 | Berni

Arbeitsmanagement-Tools
Arbeitsmanagement-ToolsWarum jedes Team Arbeitsmanagement-Tools benötigt. Man schätzt, dass 25% eines durchschnittlichen Mitarbeiter-Tages durch ineffiziente Arbeit vergeudet werden.

11.12.2020 | Berni


 

Aktuelle PHP Scripte

Formmailer Bootstrap 4

Mit dem Formmailer kann man sich eMails über seine Seite zukommen lassen.

08.07.2021 arne-home | Kategorie: PHP/ Formular
Fehlerseite Bootstrap 4

Bei Aufruf einer nicht existierenden Seite, teilen Sie Besuchern mit einer eigenen Fehlerseite mit, dass die gewünschte Seite nicht gefunden wurde. Die eigene Fehlerseite sollte dasselbe Design wie die Website haben. Zudem sollte ein Link zur Startseite a

04.07.2021 arne-home | Kategorie: PHP/ Counter
Upload Bootstrap 4

Mit dem PHP - Uploadscript kann man schnell und einfach Bilder und Dateien auf den Webserver hochladen.

04.07.2021 arne-home | Kategorie: PHP/ File
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:11 Uhr.