php-resource



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

Login

 
eingeloggt bleiben || php-forumjetzt anmelden
 

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.802
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.802
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: 213
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: 213
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: 213
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: 213
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

OnPremise versus Cloud - das richtige System finden
Wir beleuchten in diesem Artikel, die Vor- und Nachteile für Cloud oder OnPremise Systemen. Und warum es definitiv Zeit wird in die Cloud zu wechseln.

09.05.2022 | julia_mjr

Warum Texterstellung mit künstlicher Intelligenz richtig gut ist
Warum Texterstellung mit künstlicher Intelligenz richtig gut istKünstliche Intelligenz ist dabei, die Welt zu erobern. Die größten Unternehmen entwickeln Systeme, die einen Text für Sie schreiben können. Und sie machen das sehr gut.

05.01.2022 | Berni


 

Aktuelle PHP Scripte

NewsLetter Script PHP ansehen NewsLetter Script PHP

NewsLetter Script PHP is a simple email subscriptions newsletters script written in PHP and MySQL. Admin could send news in the letters to a mailing list of subscribed visitors. All the news and subscription form could be placed into a page of your web

28.06.2022 nevenov | Kategorie: PHP/ Mail
Contact Form PHP ansehen Contact Form PHP

Each website needs a contact form - Contact Form PHP script is very easy to install on your contacts page and administer.

27.06.2022 nevenov | Kategorie: PHP/ Formular
phpBasics Kalender

Der Kalender zeigt das ganze Jahr an. Wochentage, Kalenderwochen, der heutige Tag und Monat werden farbig dargestellt. Den Wochenbeginn kann auf auf Montag oder Samstag umstellen. Man kann ihm ein beliebiges Jahr per URL, wie mit den vorhandenen Beis

07.06.2022 numaek | Kategorie: PHP/ Kalender
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:01 Uhr.