Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » PHP & MySQL » datum addieren Antworten
datum addieren

mariep
Pixelschubser


Beiträge: 24


Hallo ,

ich möchte das aktuelle Datum um einen Monat addieren, um diese neues Datum später mit einem anderes zu vergleichen

1: 
2: 
3: 
4: 
5: 
6:
$timestamp=mktime(0,0,0,date("d.m.y"));
$year = date("y",$timestamp);
$month=date("m",$timestamp)+1;
$day=date("d",$timestamp);

$timestamps = date("d.m.y",mktime(0,0,0,$year,$month,$day));


ich bekomme immer für diese code , 2 fehlermeldungen: bei mktime() und date() -->
windows does not sipport negatives values for this funktion

Diese Nachricht wurde geändert von: languitar
  Profil   E-Mail   Editieren   Zitieren

languitar
Foren-Team


Beiträge: 2795


Naja, die Fehlermeldung klingt ja sehr eindeutig. Schon mal auf einem Unix-Rechner probiert?

Ansonsten an die aktuelle Timestamp kommst du auch mit time().

---
Take a look here!
Lichtblick - Einblick - Ausblick

  Profil   E-Mail   Website   Editieren   Zitieren

mariep
Pixelschubser


Beiträge: 24


ich arbeite leider nur auf windows Rechner, es gibt keine Unix Rechner hier.

  Profil   E-Mail   Editieren   Zitieren

chip
Quasselstrippe


Beiträge: 391


mariep schrieb am 12.12.2005 15:09
Hallo ,

ich möchte das aktuelle Datum um einen Monat addieren, um diese neues Datum später mit einem anderes zu vergleichen

1: 
2: 
3: 
4: 
5: 
6:
$timestamp=mktime(0,0,0,date("d.m.y"));
$year = date("y",$timestamp);
$month=date("m",$timestamp)+1;
$day=date("d",$timestamp);

$timestamps = date("d.m.y",mktime(0,0,0,$year,$month,$day));


ich bekomme immer für diese code , 2 fehlermeldungen: bei mktime() und date() -->
windows does not sipport negatives values for this funktion


OK. mktime() hat zunächst mal ein anderes Format (siehe PHP-Manual). Dafür kannst du aber auch einfach time() nehmen.
Dann bräuchtest du eine Fallunterscheidung, denn in deinem Beispiel wäre ein 13. Monat möglich. Ich würde es so machen (nicht getestet):

1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13:
$day = date("d");
$month = date("m");
$year = date("Y");

if($month > 11) {
  $year = $year+1;
  $month = 1;
} else {
  $month = $month+1;
}

$timestamps = mktime(0, 0, 0, $month, $day, $year);


// EDIT: PHP korrigiert falsche Angaben automatisch, deshalb könntest du die Fallunterscheidung weglassen. Aber das Format hat trotzdem nicht gestimmt, meins müsste korrekt sein.

---

Diese Nachricht wurde geändert von: chip
  Profil   Website   Editieren   Zitieren

TeX
Feiertags-Poster


Beiträge: 30


1:
echo date("d.m.Y",mktime(0,0,0,date("m") + 1,date("d"),date("Y")));

Diese Nachricht wurde geändert von: TeX
  Profil   E-Mail   Website   Editieren   Zitieren

mariep
Pixelschubser


Beiträge: 24


Danke , hat geklappt jetzt mit so wenig Code

  Profil   E-Mail   Editieren   Zitieren
 

Antworten
Nach oben