Datum rechnen
Marco
- php
Hi,
hab ein Datum aus ner MySQL DB in DATE-Form (also 2008-07-13). Möchte da gerne 48 Tage abziehen. Wieso kann ich nicht einfach $datum = $datum - 48 machen? geht das irgendwie anders?
Moin!
hab ein Datum aus ner MySQL DB in DATE-Form (also 2008-07-13). Möchte da gerne 48 Tage abziehen. Wieso kann ich nicht einfach $datum = $datum - 48 machen? geht das irgendwie anders?
Weiss denn PHP das $datum ein Datum darstellt? Oder ist es nur ein String? Und was genau hast Du unternommen, damit PHP in deinen Kopf schauen kann um festzustellen, dass du 48 Tage und nicht Jahre, Stunden, Minuten, Sekunden... meinst?
Hellihello
Hi,
hab ein Datum aus ner MySQL DB in DATE-Form (also 2008-07-13). Möchte da gerne 48 Tage abziehen. Wieso kann ich nicht einfach $datum = $datum - 48 machen? geht das irgendwie anders?
würde ich in unixtime umrechnen, dann abziehen:
http://de3.php.net/manual/de/function.mktime.php
<?php
$dateString = "2008-07-13";
$dateArray = explode("-",$dateString);
$year = $dateArray[0];
$month = $dateArray[1];
$day = $dateArray[2];
var_dump($dateArray);
$dateUnix = mktime(0,0,0, $month ,$day, $year);
$days48 = 48 * 24 * 60 * 60;
$newDate = $dateUnix - $days48;
$newDateString = date("Y-m-d",$newDate);
echo $newDateString;
?>
Dank und Gruß,
Guten Tag,
<?php
$dateString = "2008-07-13";
$dateArray = explode("-",$dateString);
$year = $dateArray[0];
$month = $dateArray[1];
$day = $dateArray[2];
var_dump($dateArray);
$dateUnix = mktime(0,0,0, $month ,$day, $year);
$days48 = 48 * 24 * 60 * 60;
$newDate = $dateUnix - $days48;
$newDateString = date("Y-m-d",$newDate);
echo $newDateString;
?>
Diese Code sollte nicht verwendet werden, da ein Tag nicht zwangsweise 86400 Sekunden lang ist. Man sollte besser [strtotime()](http://de3.php.net/strtotime) verwenden.
Gruß
Christoph Jeschke
--
Zend Certified Engineer
echo $begrüßung;
hab ein Datum aus ner MySQL DB in DATE-Form (also 2008-07-13). Möchte da gerne 48 Tage abziehen.
Direkt in MySQL ginge das mit: datumsfeld - INTERVAL 48 DAY
Wieso kann ich nicht einfach $datum = $datum - 48 machen? geht das irgendwie anders?
Ja. Wenn du das in PHP berechnen willst, solltest du strtotime("$datum - 48 days") nehmen, denn das beachtet lokale Gesetzlichkeiten bei der Zeitzählung. Beispielsweise dass ein Tag nicht immer 24 Stunden hat. Das Ergebnis von strtotime() ist ein Unix-Timestamp, den du dann mit date() formatieren kannst.
echo "$verabschiedung $name";