Alle Werte von heute ausgeben lassen

atlantyz

Erfahrenes Mitglied
Hallo,

ich möchte mir gerne aus einer Datenbank alle Werte ausgeben lassen, deren Status heute auf 5 gesetzt wurde. Nun habe ich allerdings ein Problem mit dem Datum. Lasse ich mir den aktuellen Timestamp ausrechnen, kann ich diesen ja nicht einfach mit dem Wert in der Datenbank vergleichen (dort ist der Timestamp als Int gespeichert), weil ich ja nicht weiß, wann der neue Tag begonnen hat... also sowas wie <=1228348799 geht nicht, weil ich ja dann jedes Datum kleiner als jetzt angezeigt bekomme.

Wie kann ich es also machen, dass der mir nur die Werte anzeigt, die vom 3.12. sind? Muss ich dazu den Timestamp zuerst in ein Datumsformat bringen und dann dort vergleichen oder kann ich das irgendwie auch direkt über den Timestamp machen?

Für Hilfe wäre ich sehr dankbar.
 
Schau dir mal die mktime-Funktion an, dann erzeugst du 2 Timestamps, einmal 03.12.2008 00:00:00 und einmal 03.12.2008 23:59:59

Alles was dazwischen liegt, gehört zu diesem Tag, soll deine Funktion nur für heute gelten, brauchst du natürlich nur einen Timestamp und fragst den Wert in der Datenbank ab, ob er größer 03.12.2008 00:00:00 ist.

Die "Siehe auch" Verweise auf der Seite sind auch recht nützlich
 
Ja... da muss ich aber das Datum wissen... der soll mir aber in Zukunft jeden Tag alle Datensätze, deren Wert an diesem Tag auf 5 geändert wurde automatisch anzeigen. Da will ich doch net jeden Tag das Datum anpassen.

Ich hab das jetzt mal so probiert (was scheinbar auch geht):

Code:
$timestamp = time();
$datum = datum($timestamp);
$timestamp = strtotime($datum);

Und der Code der Funktion datum:

Code:
function datum ($timestamp)
 {
  $datum = strftime("%d.%m.%Y",$timestamp);
  return $datum;
 }

Aber das geht bestimmt auch einfacher und net mit Austricksen von PHP, oder
 
Hallo,

ich möchte mir gerne aus einer Datenbank alle Werte ausgeben lassen, deren Status heute auf 5 gesetzt wurde. Nun habe ich allerdings ein Problem mit dem Datum. Lasse ich mir den aktuellen Timestamp ausrechnen, kann ich diesen ja nicht einfach mit dem Wert in der Datenbank vergleichen (dort ist der Timestamp als Int gespeichert), weil ich ja nicht weiß, wann der neue Tag begonnen hat... also sowas wie <=1228348799 geht nicht, weil ich ja dann jedes Datum kleiner als jetzt angezeigt bekomme.

Wie kann ich es also machen, dass der mir nur die Werte anzeigt, die vom 3.12. sind? Muss ich dazu den Timestamp zuerst in ein Datumsformat bringen und dann dort vergleichen oder kann ich das irgendwie auch direkt über den Timestamp machen?

Für Hilfe wäre ich sehr dankbar.
versuche es mal damit
PHP:
<?
$heute=mktime(0,0,0,date("m"),date("d"),date("Y")) ;
//ergibt immer 0 uhr des tages
$sql="select * from meinetabelle where status='5' and datum >'".$heute."'";
$erg=mysql_query($sql);
//usw//
?>
 
Müssen in der Tabelle denn Timestamps stehen? MYSQL hat auch "Hauseigene" Datumsfunktionen So kannst du aus dem Feld zum Beispiel ein Datetime - Feld machen (welches die Daten nach ISO - 8601 speichert.) und kannst so im Grunde ohne PHP die Query abfackeln:

Code:
select * from meinetabelle where status='5' and DATE(datum) >= DATE(NOW())
 
es ist einfacher datumseingaben später in php weiterzuverwenden wenn du über den timestamp arbeitest , so kannst du dir dann auch sehr einfach auch das deutsche datumsformat anzeigen lassen und auch in php gut mit diesen werten rechnen, natürlich gehts auch wie du sagtest ich empfinde es nur als wesentlich einfacher , grad in bezug darauf wenn du auch noch kalenderwochen oder feiertage berechnen musst
 
Hallo.

@frogg06
Ich bitte dich, doch mal deine Shift-Taste zu nutzen und etwas auf deine Groß- und Kleinschreibung zu achten.

MFG

Sascha
 
es ist einfacher datumseingaben später in php weiterzuverwenden wenn du über den timestamp arbeitest , so kannst du dir dann auch sehr einfach auch das deutsche datumsformat anzeigen lassen und auch in php gut mit diesen werten rechnen, natürlich gehts auch wie du sagtest ich empfinde es nur als wesentlich einfacher , grad in bezug darauf wenn du auch noch kalenderwochen oder feiertage berechnen musst

Hmm mit http://de.php.net/DateTime, kann ich eigentlich anstellen, was ich will... Mir ist es im Grunde auch egal, was wer wie in welche Datenbank schreibt, nur wenn die DB, eigene Mittel zur Verfügung stellt, sollte man diese denke ich auch nutzen, da sie (in der Regel, es gibt bestimmt Ausnahmen) schneller sind. Und sollte man den Zeitstempel wirklich brauchen, kann man ihn mit DateTime sehr gut erzeugen oder aber (mal von Redundanz abgesehen) mit in den Datensatz schreiben.
 
Zurück