2014-01-25 3 views
0

Я не могу записать нужное время в моей базе данных. Теперь время показывает на моем компьютере 2014-1-25 10:38:30, но когда я использую $ datetime = date ('Ymd H: i: s', time()), а время записи записывается как 2014-01- 25 16:34:02 в моей базе данных. Тип столбца DATETIME в моей базе данных. Я уже изменил свой часовой пояс своего компьютера на UTC-05: 00, потому что это компьютер, который я привез из Китая.Невозможно записать нужное время в базу данных

У меня есть postbutton Вот в HTML

<span id="postbutton" style="cursor:pointer; font-weight:bold; font- size:20px;">Launch</span> 

Вот мой Javascript

$('#postbutton').click(function(){ 

var timestamp= new Date().getTime(); 
$.ajax({ 

url:'post_handle.php', 
method:'POST', 
data:{timestamp:timestamp}, 
success:function(data){ 

//do something; 
} 
}) 

Вот мой PHP:

if(isset($_POST['timestamp'])){ 

$timestamp=$_POST['timestamp']; 
//here below is the time i want to record 
$datetime=date('Y-m-d H:i:s',$timestamp); 



$Insert=mysql_query("INSERT INTO `user_post` VALUES('','','$datetime') ") 
+0

В MySQL Проверьте значение SELECT NOW(); –

+0

Вместо того, чтобы возиться с этим, просто используйте встроенный ['NOW()'] (http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html) функция. –

+0

@AbdulManaf, он записывает время, когда строка вставляется в базу данных? Или, я тестирую на локальном хосте и хочу записать время, когда пользователь отправляет сообщение –

ответ

0

Во-первых, не используйте mysql_query. Это небезопасно и не рекомендуется, see here. Посмотрите PDO.

Данные сохраняются в порядке, в правильном формате, поэтому это не проблема с базой данных. Поскольку вы устанавливаете время с помощью PHP, вы можете полностью исключить БД.

Вам нужно подумать об источнике времени(). Это не часы вашего ПК, или минуты будут одинаковыми, поэтому источник - это что-то еще. Попробуйте изменить сервер (используете ли вы Apache?) Часовой пояс/локализацию.

+0

Да, я тестирую в локальном хостинге и использую Apache в XAMPP, и что вы подразумеваете, исключая БД, и я слышал о значении по умолчанию для функции now() для DateTime, но я все еще путаю, что это запрещено в соответствии с руководством. –

+0

Поскольку данные хранятся в правильном формате, проблема не имеет ничего общего с базой данных. Не могли бы вы подтвердить, как вы на самом деле получаете время? Вы, кажется, делаете это с PHP в своем вопросе, но затем JS в приведенном вами примере кода. – StringsOnFire

+0

Чтобы исключить проблему сервера, перейдите в каталог XAMPP, \ xampp \ php, откройте php.ini и найдите и установите: date.timezone = "CURRENTTIMEZONE" (найдите здесь http://php.net /manual/en/timezones.php) Затем перезапустите XAMPP. – StringsOnFire

0

Вы можете сделать это непосредственно в базе данных:

INSERT INTO `user_post` 
    select '', '', now(); 

Это на самом деле безопаснее, чем делать это с прикладного уровня. Все значения datetime в базе данных будут согласованы.

+0

все еще немного путать, следует ли добавить эту строку в свой php-скрипт, а затем вставить строку в базу данных и записать время, когда была вставлена ​​строка? –

+0

Это SQL, который вы бы использовали для «вставки» строки в базу данных, вместо инструкции 'insert' в вашем вопросе. –

+0

Должен ли я записать его на свой php-скрипт?, Спасибо u –

Смежные вопросы