Wochenzahl herausfinden - 4 Wochen vor bestimmtem Datum
smart
- php
Servus zusammen!
Vorweg mal alles Gute zum 10-jährigen Jubiläum von SELFHTML. Echt interessant das es euch schon 10 Jahre gibt...
Wie mein Titel schon andeutet ist meine Aufgabenstellung folgende:
Ich möchte von einem Datum (das von einer Mysql Datenbank im Format JJJJ-MM-TT daherkommt) 4 Wochen abziehen und von der Woche dann die Wochenzahl herausfinden.
Mein bisheriger Ansatz war folgender:
Das Datum habe ich mir zuerst mit explode entsprechend zerstückelt.
$kw = date("W", mktime(0,0,0,MM,TT,JJJJ)) - 4;
Aber damit bekomm ich spätestens im Jänner ein Problem.
könnt ihr mir bitte helfen eine bessere lösung dafür zu finden? danke
Lg smart
Hi,
Aber damit bekomm ich spätestens im Jänner ein Problem.
warum? mit if() kannst ja prüfen ob die 4te kalender woche schon rum
ist. wenn nicht dann greifst du auf die letzte kalenderwoch des
vorjahres zu. ist doch kein problem, zumindest kein großes,
wahrscheinlich bist grad etwas auf der leitung gestanden.
MfG
warum? mit if() kannst ja prüfen ob die 4te kalender woche schon rum
ist. wenn nicht dann greifst du auf die letzte kalenderwoch des
vorjahres zu. ist doch kein problem, zumindest kein großes,
wahrscheinlich bist grad etwas auf der leitung gestanden.
Ok das wär auch ein Lösung.
Mir schwebt aber eine elegantere Lösung vor die vielleicht die Funktion von strtotime miteinbaut - hier kann man sich ja die aktuelle zeit minus einer bestimmten zeitspanne ausgeben lassen
Mein Problem dabei ist, dass ich nicht weiß wie ich diese Funktion auch für ein bestimmtes Datum nutzen kann.
Weil dann könnte ich dieses Datum hernehmen, 4 Wochen abziehen und dann von diesem neuen Datum die Wochenzahl berechnen. oder so ..
Mfg Martin
habs glaub ich geschafft. hier die Lösung für all jene dies interessiert:
$startdatumex = explode("-", $termine_startdatum);
if(checkdate($startdatumex[1], $startdatumex[2], $startdatumex[0])){
// Datum ist gültig
$datpromokw = strtotime("-28 days",mktime(0,0,0,$startdatumex[1],$startdatumex[2],$startdatumex[0]));
$termine_promokw = date("W",$datpromokw);
}
n'abend,
habs glaub ich geschafft. hier die Lösung für all jene dies interessiert:
$startdatumex = explode("-", $termine_startdatum);
if(checkdate($startdatumex[1], $startdatumex[2], $startdatumex[0])){
// Datum ist gültig
$datpromokw = strtotime("-28 days",mktime(0,0,0,$startdatumex[1],$startdatumex[2],$startdatumex[0]));
$termine_promokw = date("W",$datpromokw);
}
Wen es interessiert...
<quote php-manual @ http://de3.php.net/manual/de/function.mktime.php>
mktime() ist hilfreich bei Datumsberechnungen und -prüfungen, da automatisch das korrekte Datum für ungültige Angaben berechnet wird.
</quote>
ergo müsste
<?php
$m = explode("-", $termine_startdatum);
$termine_promokw = date('W',mktime(0,0,0,$m[1], $m[2]-28, $m[0]);
?>
den job erledigen...
weiterhin schönen abend...
echo $begrüßung;
Ich möchte von einem Datum (das von einer Mysql Datenbank im Format JJJJ-MM-TT daherkommt) 4 Wochen abziehen und von der Woche dann die Wochenzahl herausfinden.
Was hältst du von den "Date and Time Functions", insbesondere DATE_ADD() bzw. DATE_SUB() ?
echo "$verabschiedung $name";
Was hältst du von den "Date and Time Functions", insbesondere DATE_ADD() bzw. DATE_SUB() ?
Naja von diesen functions halt ich nicht so viel weil das Ursprungsdatum ja erhalten bleiben soll und zum Zeitpunkt der Wochenberechnung noch nicht in der Datenbank ist (wird dann erst gemeinsam reingeschrieben)
sorry hab mich diesbezüglich vorher etwas falsch ausgedrückt - das Datum kommt nur im DB Format daher und nicht wie vorher geschrieben von der DB
Hi,
warum nicht einfach so?
// NR: 4 Wochen = 4*7 Tage = 4*7*24 Stunden = 4*7*24*60 Minuten = 4*7*24*60*60 Sekunden = 2419200 Sekunden
$kw = date("W", mktime(0,0,0,MM,TT,JJJJ) - 2419200);
lg, alex
Hi,
warum nicht einfach so?
// NR: 4 Wochen = 4*7 Tage = 4*7*24 Stunden = 4*7*24*60 Minuten = 4*7*24*60*60 Sekunden = 2419200 Sekunden
Wegen Sommerzeitumstellung.
cu,
Andreas