2017-07-05 3 views
1

I-Feld habe mit Typ (Zeitstempel) und Standard CURRENT_TIMESTAMP, ist das Datum korrekt, wenn ich Datensätze mit phpMyAdmin gerade, aber wenn ich versuche, es durch PHP-Datei angezeigt wird es angezeigt falsches Datummysql Datum unterscheidet, wenn Druck von PHP

Datum in MySQL 2017-07-05 10:28:12

Datum in PHP 2017-06-23 09:51:31

unter Abfrage mit

SELECT u.date FROM table u 

den globalen Zeitzone von MySQL-Server (SYSTEM) und ich habe nicht

PHP-Code

<?php 
include("../config.php"); 
$sql = mysql_query("sql query"); 
var_dump(mysql_fetch_array($sql)); 
?> 

Jede Unterstützung ändern?

SOLUTION

Wenn Sie dieses Problem stellen müssen Sie folgendes tun:

Statt mysql Verwendung PDO oder mysqli_ * Funktionen und das wird das Problem ohne Zeitzonen Einstellung entweder in Ihrem MySQL-Server lösen oder PHP-Dateien.

+0

Ich vermute, dass PhpMyAdmin die Konvertierung macht, weil PHP das nicht selbst macht. – Barmar

+0

Sie vermissen etwas. Kannst du deinen PHP-Code posten? –

+0

@ Prabhat G überprüfen Sie den Code bitte – WonderX

Antwort

1

Es muss ein anderes Problem geben (mehr zum Code 'Bild', vielleicht? ... oder eine andere Konfiguration/Einstellung?), Da ich nicht reproduzieren kann.

Hier ist mein Beispieldaten:

enter image description here

Hier ist die Struktur für die date Säule:

enter image description here

Der PHP-Code, die ich verwendet:

$dsn = 'mysql:host=localhost;dbname=test'; 

try { 
    $conn = new PDO($dsn, 'root', 'xxxxx'); 
} catch (PDOException $e) { 
    echo 'Error: ' . $e->getMessage(); 
    die(); 
} 

$stmt = $conn->prepare("SELECT t.date FROM tryme t"); 
$stmt->execute(); 
var_dump($stmt->fetchAll()); 

. . .und die Ausgabe: (Anmerkung, die ich verwenden PDO in dem obigen PHP-Code Handhabung, würde die Ausgabe ähnlich sein, wenn Mysqli verwendet wurde)

array(5) { 
    [0]=> 
    array(2) { 
    ["date"]=> 
    string(19) "2017-07-05 14:45:51" 
    [0]=> 
    string(19) "2017-07-05 14:45:51" 
    } 
    [1]=> 
    array(2) { 
    ["date"]=> 
    string(19) "2017-07-05 14:45:51" 
    [0]=> 
    string(19) "2017-07-05 14:45:51" 
    } 
    [2]=> 
    array(2) { 
    ["date"]=> 
    string(19) "2017-07-05 14:45:51" 
    [0]=> 
    string(19) "2017-07-05 14:45:51" 
    } 
    [3]=> 
    array(2) { 
    ["date"]=> 
    string(19) "2017-07-05 14:45:51" 
    [0]=> 
    string(19) "2017-07-05 14:45:51" 
    } 
    [4]=> 
    array(2) { 
    ["date"]=> 
    string(19) "2017-07-05 14:45:51" 
    [0]=> 
    string(19) "2017-07-05 14:45:51" 
    } 
} 

UPDATE:

Beispiel Mysqli Code, statt von PDO, um die gleiche Ausgabe zu erreichen:

+0

es funktioniert gut, was ist das Problem mit der Funktion mysql, wenn ich es anstelle von PDO verwenden möchte! – WonderX

+0

Die mysql_ * -Funktionen gelten als veraltet und sollten nicht mehr verwendet werden. Allerdings kann die mysql ** i ** _ * anstelle von PDO verwendet werden. Die Verwendung von mysqli sollte die gleichen Ergebnisse wie meine Ausgabe liefern. –

+0

Danke viel, hab es jetzt +1 – WonderX