Wie in Unixtimestamp umwandeln mit strtotime?

mendo

Grünschnabel
Hallo

bei der Umwandlung von Datum und Uhrzeit in einen Unixtimestamp bekomme ich zwar ein Ergebnis, welches jedoch falsch ist, da scheinbar nur das Datum berücksichtigt wird.

Bitte nun nicht auf die anderen Threads verweisen, da findet man nämlich auch keine Antwort.

Vielleicht findet sich ja ein netter Leser, der mir sagen kann, was ich falsch mache.

PHP:
<?php
$abfrage = "select wohndate, '%d.%m.%Y - %H:%i:%s' from wohnungen WHERE username = '$user'";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
echo "$row->wohndate<br>";
echo strtotime("$row->wohndate"), "\n";

?>
 
Hallo!

Was ist denn '%d.%m.%Y - %H:%i:%s' für ein komischer Spaltenname?

Und wie sieht das "falsche" Ergebnis denn aus?

Gruss Dr Dau
 
Was soll in deiner SELECT Abfrage folgendes:
%d.%m.%Y - %H:%i:%s

Du legst doch nicht jedesmal eine neue Spalte an.

Versuche dich auch zu entscheiden, ob Groß- oder Kleinschreibung für dich übersichtlicher ist!
Ich denke folgender Befehl ist mehr deinen Wünschen entsprechend!
PHP:
<?php 
$abfrage = "SELECT wohndate FROM wohnungen WHERE username = '$user'"; 
$ergebnis = mysql_query($abfrage); 
while($row = mysql_fetch_object($ergebnis)) 
echo "$row->wohndate<br>"; 
echo strtotime("$row->wohndate"), "\n"; 

?>
Schön wäre es, wenn du uns einmal zeigst was
var_dump($row->wohndate);
ausgibt!
 
Sorry, sowas nennt sich wohl Kunstfehler eines Laien *g*

PHP:
<?php
$abfrage = "select wohndate from wohnungen where username = '$user'";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
echo "$row->wohndate<br>";
echo strtotime("$row->wohndate"), "\n";

?>

Das falsche Ergebnis: 1247436000
Richtig wäre: 1247457180 am Beispiel "2009-07-13 05:53:44"

Ich bin halt kein Profi und hab schon nachgebessert und gepostet. Kann ja mal passieren. Aber darum geht es ja auch nicht. Kritik am Stil kann ich auch ohne Wissen üben.Das ich WHERE groß darstelle, hat den Sinn der Übersichtlichkeit für mich.

Solche Anmerkungen erklären nur leider das Problem nicht - noch beantwortet es meine Frage.
 
Versuche es mal so:
PHP:
<?php 
$abfrage = "select UNIX_TIMESTAMP(wohndate) as wohndate from wohnungen where username = '$user'"; 
$ergebnis = mysql_query($abfrage); 
while($row = mysql_fetch_object($ergebnis)) 
echo "$row->wohndate<br>"; 
echo $row->wohndate."\n"; 

?>
 
Danke Dr Dau :)

Das Ergebnis ist Perfekt.

Datt war die Rettung einer langen Nacht *lächel*

Nur noch eine minimale Abweichung, mit der ich leben kann...
 
Das ist mir nicht ganz geheuer.....
Hast Du mal in der Datenbank nachgesehen ob der Unixtimestamp wirklich korrekt eingetragen ist?

Beim vorherigen Ergebnis ist auch schon so eine krumme Summe bei rausgekommen:
Differnez 21180 Sek. --> 353 Min. --> 5 St. 53 Min.
An der Zeitzone kann es also nicht liegen..... der Fehler steck woanders.
 
5 Std 53 Min. sind ja auch richtig, waren ja auch die Abweichung die durch meinen fehlerhaften Code erzeugt wurden, da die Stunden und Minuten nicht mit übernommen wurden.

Und mit ein paar Sekunden kann ich leben *g* Vllt. liegts ja an der mysql Version... *hmpf* Aber ich rechne nicht in Sekunden oder Microsekunden, also ist es für mich eigentlich egal.

Aber die Datenbank hat den Wert richtig gespeichert. Vllt. kommt die Abweichung von 44 Sek auch durch den Server zustande, weil der Sekunden mitliefert, die ich nicht abgefragt habe. Sprich nur hh:ii. und nicht hh:ii:ss . So das es garkeine Abweichung mehr ist.

Nachtrag, ich doof.. klar liefert er die Sekunden mit. Zu früh für mich *lach* Keine Abweichung vorhanden.
 

Neue Beiträge

Zurück