2013-06-10 2 views
-3

У меня проблема с обновлением записей базы данных с определенным временем.PHP, вводящее время в базу данных

$currentTime = time("H:i:s", strtotime("16:00:00")); 

mysqli_query($mysqli,"UPDATE Table SET time='" . $currentTime . "' WHERE id = 1); 

но время в базе данных отображение в 00:00:00

типа данных в моей базе данных устанавливаются в TIME ... она должна быть ДАТА?

Что я делаю неправильно?

+1

'time' возвращает текущую временную метку unix как целое число. Возможно, вы намеревались использовать «дату»? – datasage

+0

У вас также есть опечатка с вашими кавычками в mysqli_query. – BIOS

+0

['time() - Return current Unix timestamp'] (http://php.net/manual/en/function.time.php) – Sean

ответ

0

Изменение time по date

Функция time только вернуть unixtimestamp ... Вам нужно форматировать метки времени UNIX, как H: я: с.

0

echo time("H:i:s", strtotime("16:00:00"));

производит

1370830176

Это не формат времени ожидается MySQL.

Ваш запрос становится:

UPDATE Table SET time='1370830176' WHERE id = 1

Это должно быть просто:

UPDATE Table SET time='16:00:00' WHERE id = 1

Таким образом, вам не нужно это:

$currentTime = time("H:i:s", strtotime("16:00:00"));

Вам нужно всего лишь:

$currentTime = "16:00:00";

1

Почему бы не использовать MySql дату/время functions?

См CURRENTTIME, а затем использовать

mysqli_query($mysqli,"UPDATE Table SET time=CURRENTTIME() WHERE id = 1"); 
+0

Обратите внимание, что будет использоваться часовой пояс сервера базы данных, а не сервер, на котором выполняется скрипт. –

+0

@Jack - просто используйте GMT ​​/ UTC и используйте функцию CONVERT_TZ(). –

+0

Я знаю, но я не тот, кто задает вопрос ;-) –