Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

hi leute...

ich habe ein php script das die kalenderwoche anzeigt und daraufhin noch den inhalt aus einer datenbank der zu dieser kalenderwoche gehört...

nun wollte ich in den kopf der tabelle (also wo auch die Kw drinne steht)

unter die kw schreiben das z.b die 41 kw dem 7.okt - 11 okt entspricht..

wie schon im beispiel zu sehen sollte der befehl auf arbeitstage beschränkt sein...

also WE haben keine bedeutung..

---------

weiterhin möchte ich das in meiner vorhanden datenbank die feiertage die so durchs jahr kommen eingetragen werden und dem user somit den zugriff auf dieser felder verweigern...

sprich:

ich habe nen stinknormalen kalernder und ich möchte das sich die feiertage darin berechnen lassen und nicht vorher von hand eingegeben werden müssen

Geschrieben

//Errechnet das Datum des letzten Arbeitstages (Freitag) einer übergebenen Kalenderwoche und des  Jahres
function KWtoDate($eingabe, $jahr)
{
$tag_jahresbeginn = mktime(0, 0, 0, 1, 1, $jahr);
switch(date("l", $tag_jahresbeginn))
{
case "Monday" : $einige_tage = 4; break;
case "Tuesday" : $einige_tage = 3; break;
case "Wednesday" : $einige_tage = 2; break;
case "Thursday" : $einige_tage = 1; break;
case "Friday" : $einige_tage = 0; break;
case "Saturday" : $einige_tage = 5; break;
case "Sunday" : $einige_tage = 6; break;
default : print "Dieser Satz darf nie erscheinen, sonst ist ******** passiert !"; break;
}

$tage_bis_ziel_kw = ($eingabe - 1) * 7 + $einige_tage;
$datum_in_ziel_kw = mktime(0, 0, 0, 1 , 1 + $tage_bis_ziel_kw, date("Y"));

//print "KW $eingabe in diesem Jahr endet am : ". date ("l d F", $datum_in_ziel_kw);
$ziel_tag = date("d", $datum_in_ziel_kw);
$ziel_monat = date("m", $datum_in_ziel_kw);
$ziel_jahr = date("Y", $datum_in_ziel_kw);
$Zieldatum = "$ziel_tag.$ziel_monat.$ziel_jahr";

return $Zieldatum;
}

[/PHP]

Ist nicht ganz professionell, denke aber daraus kann man das ganz leicht machen was Du benötigst. Da diese Funktion immer den Freitag ausrechnet müsste man nur die par Tage zurück miteinbeziehen.

Hoffe es hilft.

Geschrieben

$eingabe = die aktuelle kw?!?!

$jahr das aktuelle jahr oder?!?!

was macht die zeile

"return $zieldatum" ?!?!

was macht die zeile

return $zieldatum

bzw was macht der befehl return!?!

Geschrieben
Original geschrieben von kills

$eingabe = die aktuelle kw?!?!

$jahr das aktuelle jahr oder?!?!

Ja

was macht die zeile

"return $zieldatum" ?!?!

was macht die zeile

return $zieldatum

bzw was macht der befehl return!?!

Dieser Befehl gibt das errechnete Datum der Funktion (den Freitag) zurück, d.h. wenn die sie z.B. so aufrufst "$test = KWtoDate(22, 2002);" steht in $test das entsprechende Datum.

Geschrieben

dann is das ergebnis der freitag der kw 22 des jahres 2002 ?!?

kann ich auch irgendwie deutsches datumsformat nehmen..

also ich meine das man anstatt october halt oktober ausgibt usw....

Geschrieben

Nein, die Rückgabe ist nur eine Rückgabe, keine Ausgabe, d.h. Du müsstest es noch mit echo/print ausgeben.

Sag mal, wie oft hast du schon mit PHP oder anderen Programmiersprachen gearbeitet :confused:

Geschrieben

Weil meines Wissen nach PHP mit der Kalenderwoche bei sowas komisch reagiert, es rechnet rein oberflächlich betrachtet glaube ich mit KW 0 bzw. unter Umständen auch mit KW 53 :( Morgen bin ich wieder im Betrieb, da kann ich Dirs genau sagen ...

Geschrieben

Wie kommst Du eigentlich auf 45 ? Ich rate Dir einfach mal selber ein wenig mit den Datumsfunktionen zu testen, bevor Du hier fragst.

Vieles klärt sich von selbst, wenn man nur selber mal nachschlägt (wie auch das mit dem sauberen HTML in Deinem anderen Beitrag) :D

Geschrieben

Hi,

also zum Problem mit der Kalenderwoche:

PHP zählt die Wochen vom ersten Sonntag des Jahres an, also wenn dann der 1.1. z.B. ein Donnerstag ist, so ist der erste Sonntag der 4.1. und erst ab dem 4.1. die Woche wird gezählt!

Du mußt einfach die Funktion ausführen, die Dir die Kalenderwoche zurückgibt und dann prüfen ob der 1.1. ein Sonntag ist, wenn nicht mußt Du einfach Deine KW um eins erhöhen!

Bis denn...:marine

  • 4 Wochen später...
Geschrieben

kann ich die funktion jetzt mit der richtigen kw ansteuern?!

d.h also mit 54 usw.

oder muss ich der funktion die 53kw uebergeben damit sie mir die 54kw ausspuckt!?

---------

wie kann ich abprüfen ob der 1.1 ein sonntag ist?!

kann mir jemand den quelltext posten. ich blick durch die funktion kwtodate nicht so ganz durch.

Geschrieben
Originally posted by AlexBossi

Du mußt einfach die Funktion ausführen, die Dir die Kalenderwoche zurückgibt und dann prüfen ob der 1.1. ein Sonntag ist, wenn nicht mußt Du einfach Deine KW um eins erhöhen!

Bis denn...:marine

function gibdatum($kw, $jahr, $wo) {//Errechnet das Datum des letzten Arbeitstages (Freitag) einer übergebenen Kalenderwoche und des Jahres

/*

$wo=0 == Freitag

$wo=1 == Donnerstag

$wo=2 == Mittwoch

$wo=3 == Dienstag

$wo=4 == Montag

...

*/

$marke = 0;

$tag_jahresbeginn = mktime(0, 0, 0, 1, 1, $jahr);

switch(date("l", $tag_jahresbeginn))

{

case "Monday" : $einige_tage = 4;$kw++; break; // <----

case "Tuesday" : $einige_tage = 3;$kw++; break; // <----

case "Wednesday" : $einige_tage = 2;$kw++; break; // <----

case "Thursday" : $einige_tage = 1;$kw++; break; // <----

case "Friday" : $einige_tage = 0;$kw++; break; // <----

case "Saturday" : $einige_tage = 5;$kw++; break; // <----

case "Sunday" : $einige_tage = 6; break;

default : print "Fehler in Function GibDatum oder falsche® Übergabeparameter!"; break;

}

$tage_bis_ziel_kw = ($kw - 1) * 7 + $einige_tage;

$tagesdatum_wo = mktime(0, 0, 0, 1 , 1 + $tage_bis_ziel_kw-$wo, $jahr);

$tag = date("d", $tagesdatum_wo);

$monat = date("m", $tagesdatum_wo);

$jahr = date("Y", $tagesdatum_wo);

$dat = "$monat/$tag/$jahr";

return $dat;

}

hier mein quellcode.

die funktion hat halt jetzt nen anderen namen aber is ja egal.

habe ich das só richtig verstanden?!

sry wegen dem doppelten post

Geschrieben

PHP:--------------------------------------------------------------------------------

//Errechnet das Datum des letzten Arbeitstages (Freitag) einer übergebenen Kalenderwoche und des Jahres

function KWtoDate($eingabe, $jahr)

{

$tag_jahresbeginn = mktime(0, 0, 0, 1, 1, $jahr);

switch(date("l", $tag_jahresbeginn))

{

case "Monday" : $einige_tage = 4; break;

case "Tuesday" : $einige_tage = 3; break;

case "Wednesday" : $einige_tage = 2; break;

case "Thursday" : $einige_tage = 1; break;

case "Friday" : $einige_tage = 0; break;

case "Saturday" : $einige_tage = 6; break; // <--- Hier war der fehler !! "5" & "6" war vertauscht

case "Sunday" : $einige_tage = 5; break;

default : print "Dieser Satz darf nie erscheinen, sonst ist ******** passiert !"; break;

}

$tage_bis_ziel_kw = ($eingabe - 1) * 7 + $einige_tage;

$datum_in_ziel_kw = mktime(0, 0, 0, 1 , 1 + $tage_bis_ziel_kw, date("Y"));

//print "KW $eingabe in diesem Jahr endet am : ". date ("l d F", $datum_in_ziel_kw);

$ziel_tag = date("d", $datum_in_ziel_kw);

$ziel_monat = date("m", $datum_in_ziel_kw);

$ziel_jahr = date("Y", $datum_in_ziel_kw);

$Zieldatum = "$ziel_tag.$ziel_monat.$ziel_jahr";

return $Zieldatum;

}

----------------------------------

hier nun die korrekte funktion funzt 100% richtig ;))

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...