badrulecracker
Goto Top

Gegebenes Datum um einen Tag erhöhen

Hi,

ich stehe immoment irgendwie etwas auf dem Schlauch.
Ich möchte ein SQL Query machen, bei dem ich ausgehend von einem Datum, dass ich per POST bekomme, z.b 5 mal wiederhole und dabei das Datum jeweils um einen Tag erhöhe.

Gedacht habe ich mir das ganze so:
for($i=1;$i<=$_POST['dauer'];$i++)
{
$datum = $_POST['start_datum']+$i;
$sql=" UPDATE
entliehen
SET
status='1'
WHERE
geraet='".$_POST['geraet']."'
AND
datum='".$datum."';";
}

Leider muss ich feststellen, dass bei $datum dann 2007, drinsteht, wenn $_POST['start_datum'] = '2006-01-01'

Ich wollte nun mich mal erkundigen, wie ich soetwas bewerkstelligen kann?

Wäre klasse, wenn jemand von euch einen Tip für mich hat.

mfg, brc

Content-ID: 26737

Url: https://administrator.de/contentid/26737

Ausgedruckt am: 22.11.2024 um 16:11 Uhr

Dani
Dani 23.02.2006 um 17:13:16 Uhr
Goto Top
Hi,
so müsste es gehen:
list($jahr,$monat,$tag)=split("\-",$_POST['start_datum']);
for($i=1;$i<=$_POST['dauer'];$i++)
{
$tag++;
$datum = "$jahr-$monat-$tag";
$sql=" UPDATE entliehen SET status='1' WHERE geraet='".$_POST['geraet']."' AND datum='".$datum."';";
}

Gruß
Dani
badrulecracker
badrulecracker 26.02.2006 um 10:39:17 Uhr
Goto Top
Hi,

vielen dank so sollte es funktionieren! Allerdings ist jetzt noch nicht berücksichtigt, dass wenn der Tag der 28,29,30. bzw. 31. ist, dass dann der der Monat erhöht wird und dann evtl das jahr.

Aber das kann man ja mt ein paar if anweisungen erledigen...

vielen dank nochmal dafür!

ciao
heyko
heyko 02.03.2006 um 11:01:39 Uhr
Goto Top
du könntest das datum in einen timestamp umwandeln dann addierst du 24 stunden in sekunden und wandelst es wieder in ein datum um schon fällt der ganze kram mit monat wechseln usw.. weg ....

bin grade nicht zuhause sonst würde ich dir ein beispiel geben
badrulecracker
badrulecracker 08.03.2006 um 19:09:08 Uhr
Goto Top
Hi,

vielen dank so werde ich es vermutlich machen. kannst du mir noch einen tip geben wie man aus $_GET['start_datum'] (was ja ein String ist) ein timestamp zu machen?
mit welcher funktion kann man das realisieren?

mfg, brc
Dani
Dani 08.03.2006 um 19:15:10 Uhr
Goto Top
Hi,
probier's mal mit mktime(). Erstmal musst du dein Datum splitten!!

list($tag,$monat,$jahr)=split("\DEIN TRENNUNGSZEICHEN",$_GET['start_datum'];

echo mktime (0, 0, 0, $monat, $tag, $jahr);

Je nachdem, wie dein Datum ist, sprich zuerst der Monat dann der Tag und dann das Jahr(Monat-Tag-Jahr) oder ganz normales (Tag.Monat.Jahr oder Tag-Monat-Jahr). Einfach in der "list" die Variablen richtig anordnen!

Gruß
Dani
badrulecracker
badrulecracker 08.03.2006 um 19:20:02 Uhr
Goto Top
Hi,

vielen dank! das ging ja super schnell. das werde ich mal probieren...
cu