2016-04-19 4 views
0

Я храню временную метку datetime в базе данных (SQL Server). Я просто использую это, чтобы получить текущее время: date('Y-m-d H:i:s') который отлично работает.PHP/SQL - формат Datetime испорчен PHP-сторона

В базе данных он выглядит точно так же (формат), однако, когда я получаю datetime из базы данных, формат полностью отключен.

Дата, например, отображается в базе данных как 19-4-2016 13:29:36, но когда я читаю данные на PHP, она становится apr 19 2016 01:29:36:000.

Моего код для чтения из базы данных:

$dateFromDB = /* Sql query here.. */; 
$myTimestamp = date('Y-m-d H:i:s', strtotime($dateFromDB)); 

The $dateFromDB вариабельного эха: apr 19 2016 01:29:36:000

The $myTimestamp эха: 1970-01-01 01:00:00

дата хранится в базе данных как datetime, имейте в виду, что формат даты выглядит хорошо внутри таблицы базы данных, он испорчен, когда он читается на стороне PHP.

Похоже, это в базе данных: enter image description here

+0

Как вы запрашиваете его из базы данных? Он должен быть «ГГГГ-ММ-ДД ЧЧ: ММ: СС» [согласно документации] (http://dev.mysql.com/doc/refman/5.7/en/datetime.html): «* формат для эти значения: «ГГГГ-ММ-ДД ЧЧ: ММ: СС [.фракция]» *. Вы уверены, что он хранится как 'DATETIME' или это на самом деле' VARCHAR'? Независимо от этого, вы можете использовать 'DateTime :: createFromFormat()'. ** Кроме того, вы используете MySQL или MsSQL? ** Вы отметили его с помощью MySQL, но «Microsoft SQL Server» не является MySQL. – h2ooooooo

+0

, если вы правильно храните, то почему вы используете функцию 'strtotime' и' date'. Простой 'echo $ dateFromDB'. Я не думаю, что вам нужно преобразовать значение – urfusion

+0

@ h2ooooooo Я добавил картинку в мой OP. – Dubb

ответ

2

С Вопросом: даты, например, отображается в базе данных 19-4-2016 13:29:36

19-4-2016 13:29:36 должна быть 2016-04-19 13:29:36 (Y-m-d H:i:s) формата в базе данных.

0

@Dubb: - Я использовал ту же дату для хранения в базе данных, а затем попытался ее извлечь. Я могу получить тот же формат, что и ранее. Я использовал этот код, чтобы извлечь из базы данных: -

if ($result->num_rows > 0) 
{ 
    // output data of each row 
    while($row = $result->fetch_assoc()) 
    { 
    $ff = $row["dates"]; 
    echo date('Y-m-d H:i:s', strtotime($ff)) . "<br>"; 
    } 
} 
else 
{ 
    echo "0 results"; 
} 

Если возможно, пожалуйста, опишите свой формат столбец таблицы

+0

Эй, это просто 'datetime'. Когда я нажимаю столбец, я могу выбрать из календаря, поэтому SQL-сервер также читает его как подходящую дату. – Dubb

+0

У вас установлен правильный часовой пояс в php? –