2008-08-21 14 views

Antwort

14

von Zeitstempel-Format konvertieren:

date('Y-m-d', $timestamp); 

von formatierten Umstellung auf Datenstand:

mktime(0, 0, 0, $month, $day, $year, $is_dst); 

Siehe date und mktime für die weitere Dokumentation.

Wenn es um das Speichern geht, liegt es an Ihnen, ob Sie das MySQL DATE-Format zum Streamen als formatiertes Datum verwenden. als Ganzzahl zum Speichern als UNIX-Zeitmarke; oder Sie können das TIMESTAMP-Format von MySQL verwenden, das einen numerischen Zeitstempel in ein lesbares Format umwandelt. Check the MySQL Doc für TIMESTAMP Info.

0

strtotime() und getdate() sind zwei Funktionen, die verwendet werden können, um Daten aus Zeichenfolgen und Zeitstempeln abzurufen. Es gibt keine Standard-Bibliotheksfunktion, die zwischen MySQL- und PHP-Zeitstempeln konvertiert.

0

Verwenden Sie die PHP Date Funktion. Möglicherweise müssen Sie den mysql-Zeitstempel in Ihrer Abfrage in einen Unix-Zeitstempel konvertieren, indem Sie die Funktion UNIX_TIMESTAMP in mysql verwenden.

0

Ein Datum String der Form:

YYYY-MM-DD 

hat keine Zeit mit ihr verbunden sind. Ein MySQL-Zeitstempel ist von der Form:

YYYY-MM-DD HH:mm:ss 

die beide zu vergleichen, werden Sie entweder einen Zeitpunkt nach dem Datum Zeichenfolge, wie Mitternacht zum Beispiel

$datetime = '2008-08-21'.' 00:00:00'; 

hinzufügen und dann eine Funktion verwenden die epoc Zeit zwischen ihnen

if (strtotime($datetime) > strtotime($timestamp)) { 
    echo 'Datetime later'; 
} else { 
    echo 'Timestamp equal or greater'; 
} 
3

zu vergleichen, können Sie vermeiden, PHP von usi verwenden strtotime() oder getdate() in mit ng MySQL UNIX_TIMESTAMP() Funktion.

SELECT UNIX_TIMESTAMP(timestamp) FROM sometable 

Die resultierenden Daten werden ein Standard-Integer-Unix-Zeitstempel, so dass Sie einen direkten Vergleich zu time() tun können.

2

Ich schrieb diese kleine Funktion, um den Prozess zu vereinfachen:

/** 
* Convert MySQL datetime to PHP time 
*/ 
function convert_datetime($datetime) { 
    //example: 2008-02-07 12:19:32 
    $values = split(" ", $datetime); 

    $dates = split("-", $values[0]); 
    $times = split(":", $values[1]); 

    $newdate = mktime($times[0], $times[1], $times[2], $dates[1], $dates[2], $dates[0]); 

    return $newdate; 
} 

Ich hoffe, die

+0

kann durch einen einzigen Aufruf ersetzt werden, um strtotime Dieser ganze Funktion hilft. Warum erfinden Sie das Rad neu? –

+0

Mein Schlechter, ich baute dies auf, als ich Probleme in der Vergangenheit hatte (aus einem Grund, der mir jetzt entgeht). –