Timestamp

Kimymoon86

Mitglied
Hallo zusammen. Ich hab eine DB, mit der Tabelle 'Sendezeit' ich die Werte t1(=Startzeitpunkt, als Unix Timestamp) und t2 (Endzeitpunkt, mit Unix Timestamp) habe.
Außerdem habe ich in php folgendes erstellt:

PHP:
$datum_uebermorgen = strtotime("+ 2 day"); 
$uebermorgen = date("d.m.Y - H:i",$datum_uebermorgen);
$timestamp = time();

Ich würde gerne eine MYSQL Abfrage machen In der ich sage:
PHP:
$sql = SELECT t1 
FROM Sendezeit
WHERE t1 BETWEEN ($timestamp AND $uebermorgen);

Leider bekomm ich so keine Ausgabe! Könnt ihr mir weiter helfen?
 
Hi,

ich würde dir empfehlen in der Datenbank von INT (Timestamps) auf DATETIME umzustellen, wenn das möglich ist. Dann kannst du die ganze Datumsrechnerei von der MySQL Datenbank erledigen lassen. Das erspart dir dann u. U. auch noch Zeitzonen Probleme.

Würde dann in SQL so aussehen:
Code:
SELECT t1 FROM Sendezeit WHERE t1 BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 2 DAY);
In PHP musst du natürlich den Query in Anführungszeichen setzen:
PHP:
$sql = "SELECT t1 FROM Sendezeit WHERE t1 BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 2 DAY);";

Die Lösung mit der Berechnung in PHP entsprechend

PHP:
$sql = "SELECT t1  FROM Sendezeit WHERE t1 BETWEEN (" . $timestamp . " AND " . $uebermorgen . ");";

Mit der date Funktion erzeugst du keinen Timestamp sondern einen String time wiederum erzeugt dir einen INT (Timestamp).

Ich habe deinen Code mal eben ausgeführt um das zu verdeutlichen:
PHP:
php > $datum_uebermorgen = strtotime("+ 2 day");
php > $uebermorgen = date("d.m.Y - H:i",$datum_uebermorgen);
php > $timestamp = time();
php > $sql = "SELECT t1  FROM Sendezeit WHERE t1 BETWEEN (" . $timestamp . " AND " . $uebermorgen . ");";
php > var_dump($sql);
string(79) "SELECT t1  FROM Sendezeit WHERE t1 BETWEEN (1395335635 AND 22.03.2014 - 18:13);"
php > $sql2 = "SELECT t1  FROM Sendezeit WHERE t1 BETWEEN (" . $timestamp . " AND " . $datum_uebermorgen . ");";
php > var_dump($sql2);
string(71) "SELECT t1  FROM Sendezeit WHERE t1 BETWEEN (1395335635 AND 1395508412);

Interessant wäre welchen Typ das Attribut t1 in der Datenbank hat.

LG Nikolas
 
Zurück