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-Key: 26737

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

Printed on: April 18, 2024 at 11:04 o'clock

Member: Dani
Dani Feb 23, 2006 at 16:13:16 (UTC)
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
Member: badrulecracker
badrulecracker Feb 26, 2006 at 09:39:17 (UTC)
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
Member: heyko
heyko Mar 02, 2006 at 10:01:39 (UTC)
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
Member: badrulecracker
badrulecracker Mar 08, 2006 at 18:09:08 (UTC)
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
Member: Dani
Dani Mar 08, 2006 at 18:15:10 (UTC)
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
Member: badrulecracker
badrulecracker Mar 08, 2006 at 18:20:02 (UTC)
Goto Top
Hi,

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