Возникли проблемы с форматированием даты в JavaScript от MySQL - PullRequest
0 голосов
/ 27 октября 2019

Я не очень опытен в ajax и у меня проблемы с форматированием даты из базы данных MySQL.

Я пытался использовать функцию php date (), но не могу заставить ее работать должным образом. Каков наилучший способ форматирования даты в этом?

  $(document).ready(function(){
    $.ajax({
        type: "GET",
        url: "../api/presentation/read.php",
        dataType: 'json',
        success: function(data) {
            var response="";
            for(var user in data){
                response += "<tr>"+
                "<td>"+data[user].date+"</td>"+
                "<td>"+data[user].title+"</td>"+
                "<td>"+data[user].speaker+"</td>"+
                "<td><a href='update.php?id="+data[user].id+"'>Edit</a> | <a href='#' onClick=Remove('"+data[user].id+"')>Remove</a> | <a href='#' onClick=Active('"+data[user].id+"')>Active</a></td>"+
                "</tr>";
            }
            $(response).appendTo($("#presentations"));
        }
    });
  });

Я пробовал что-то вроде

"<td><?php echo date("+data[user].date+",dd-mm); ?></td>"+

Это дает вывод "+ 01am31am [00000000UTCThu,01 января 1970 г. 00:00:00 +0000] .01am31UTC + "что, я подозреваю, связано с тем, что функции даты не присваивается никакого значения?

Я бы хотел, чтобы выходные данные были в формате дд-ммЧЧ-ММ вместо формата даты-времени MySQL «2019-10-29 10:00:00»

Ответы [ 2 ]

1 голос
/ 27 октября 2019

Вы неправильно смешиваете PHP и JavaScript.

Во-первых, вы ДОЛЖНЫ знать, что PHP выполняется на стороне сервера, ДО того, как в вашем браузере есть HTML или JavaScript.

Этосказал, давайте прочитаем вашу попытку еще раз:

""

Здесь часть PHP скрипта будет выполняться на стороне сервера, а переменная data [...] там не существуеттакже внутри строки (между двойными кавычками). Поскольку эта строка не является допустимой датой, она выведет начало эпохи unix .

Чтобы решить эту проблему, вам необходимо разделить свои проблемы здесь.

Первый способ

  1. Ваш php-скрипт, вызванный ajax, должен возвращать дату в некотором допустимом формате даты. Я предлагаю использовать формат ISO8601, поскольку JavaScript автоматически анализирует этот формат при использовании объекта Date.
  2. Используйте JavaScript для форматирования этой даты в желаемом выходном формате.

Второй способ:

  1. Непосредственное преобразование даты в PHP с использованием функции date, но: вы делаете это полностью на PHP-скрипте. Не смешивайте оба языка. Они полностью разделены и работают в разные моменты времени и имеют изолированные области видимости.
0 голосов
/ 27 октября 2019

Внесите изменения в ваш запрос Select, а затем сделайте, как сейчас.

SELECT DATE_FORMAT(NOW(), '%d.%m.%Y %H:%i:%s') 

Результат

DATE_FORMAT(NOW(), '%d.%m.%Y %H:%i:%s')
27.10.2019 20:40:41

вместо функции now (), вставленной в ваше имя столбца

...