Datumsdifferenz aktuelles Datum - historische Datumsangaben, Ausgabe in Tagen

tantehorst

Grünschnabel
Hallo!

ich versuche mich gerade in wenig in php. Nach Nutzung der Suchfunktion habe ich auch einige Threads zu meinem Thema gefunden allerdings konnte ich mit keinem wirklich was anfangen. So wich ich die Doku gelesen habe gibt es ja mannigfaltig Variationen, um Datumsdifferenzen festzustellen.
Unten mein derzeitgiges Script.
Ich möchte eigentlich nur Differnz in Tagen zwischen $datum und $pruefdatum in Tagen bilden.

Wie muss eine entsprechende Anweisung aussehen, dass alle bei allen Pruefterminen in der Tabelle die Differenz in Tagen zum aktuellen Datum möglichst genau ausgerechnet wird.

Ich stehe echt auf dem Schlauch.




PHP:
<?php

$ergebnis = mysql_query("SELECT pruefdatum FROM prueftermine");

while($row = mysql_fetch_object($ergebnis))
{
 
  echo $row->pruefdatum;
  echo "<br>";
 
}


$timestamp = time();
$datum = date("Y-m-d", $timestamp);
echo "<br>";
echo $datum;



?>
 
SQL:
SELECT DATEDIFF(pruefdatum, NOW()) AS diff1 FROM prueftermine

Liefert dir als Ergebnis die Differenz zwischen dem heutigen Datum und dem Feldwert von "pruefdatum".

Anstelle von NOW() kannst du auch mit Hilfe von PHP ein beliebiges Datum in die Anweisung einbauen.
 
Zuletzt bearbeitet:
Und wenn du DATEDIFF() anstelle von tombes DATDIFF() verwendest, sollte es sogar klappen (sofern das Feld pruefdatum irgend ein Datumstype ist).
 
Zunächst erstmal Danke für die sauschnelle Hilfe.
Da ich Anfänger und bislang immer nur relativ simple Abfragen und Inserst durchgeführt habe tue ich mich an manchen Stellen noch schwer mit der Syntax.

Sind bei diesem Select alle Anführungszeichen und Hochkomata richtig gesetzt?

PHP:
$ergebnis = mysql_query("SELECT DATEDIFF(pruefdatum, NOW()) AS diff1 FROM prueftermine");

while($row = mysql_fetch_object($ergebnis))
{
 
  echo $row->pruefdatum;
  echo "<br>";
 
}
 
Die Abfrage sieht soweit gut aus. Du musst lediglich in der Schleife $row->diff1 ausgeben statt pruefdatum (oder allgemeiner ausgedrückt: die Attributnamen des Objektes entsprechen den Spaltennamen der Ergebnismenge).
 
Ich würde mal sagen das es so in Ordnung ist, zumindest dann wenn du "diff1" verwendest. Was passiert wenn du den Code ausführst?

Vielleicht noch ein "ORDER BY diff1" ans Ende der Abfrage, dann werden die Daten aufsteigen sortiert!?
 
Morgen!

Also die Abfrage funktioniert und gibt folgendes Ergebnis aus:

ausgabe.jpg


30.09.2011

Ergebnis = 0, Prüftermin wäre heute
Ergebnis = -3, Prüftermin 27.09.2011
Ergebnis = 19, Prüftermin 19.10.2011

Sitzt, wackelt und hat Luft.

Danke soweit erstmal.
 
Zurück