Arhn - архитектура программирования

Не удается записать нужное время в базу данных

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

У меня есть кнопка публикации Вот 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') ")

  • В MySQL проверьте значение SELECT NOW(); 25.01.2014
  • Вместо того, чтобы возиться с этим, просто используйте встроенный NOW(). 25.01.2014
  • @AbdulManaf, это будет записывать время, когда строка вставляется в базу данных? Или я тестирую на локальном хосте и хочу записать время, когда пользователь публикует 25.01.2014
  • Как вы думаете, какой интервал между публикацией формы и вставкой записи? 25.01.2014
  • @DanBracuk, я думаю, это должно произойти в течение пары секунд. 25.01.2014

Ответы:


1

Во-первых, не используйте mysql_query. Это небезопасно и устарело, см. здесь. Найдите ПДО.

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

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

25.01.2014
  • да, я тестирую на локальном хосте и использую Apache в XAMPP, и что вы подразумеваете под исключением БД, и я слышал о значении по умолчанию для установки функции now() для DateTime, но я все еще смущен тем, что это не разрешено в соответствии с руководство 25.01.2014
  • Поскольку данные хранятся в правильном формате, проблема не связана с базой данных. Не могли бы вы подтвердить, как вы на самом деле получаете время? Кажется, вы делаете это с PHP в своем вопросе, но затем с JS в приведенном вами примере кода. 25.01.2014
  • Чтобы исключить проблему с сервером, перейдите в свой каталог XAMPP, \xampp\php, откройте php.ini и найдите и установите: date.timezone = CURRENTTIMEZONE (найдите свой здесь php.net/manual/en/timezones.php) Затем перезапустите XAMPP. 25.01.2014
  • теперь я выбираю использовать php для записи, это выглядит так $datetime=date('Y-m-d H:i:s', time()); но когда я это записываю, в базе записано как 2014-01-25 18:34:46, а сейчас 12:37:00 25.01.2014
  • он был сохранен как date.timezone=Europe/Berlin по умолчанию, позвольте мне изменить его и посмотреть, работает ли это 25.01.2014
  • Без проблем. Не забудьте разбить проблемы, чтобы сузить, где ошибка может быть. 26.01.2014

  • 2

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

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

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

    25.01.2014
  • все еще немного запутан, должен ли я добавить эту строку в свой php-скрипт, а затем он вставит строку в базу данных и запишет время, когда строка была вставлена? 25.01.2014
  • Это SQL, который вы использовали бы для insert строки в базе данных вместо оператора insert в вашем вопросе. 25.01.2014
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..