Получение даты из MYSQL в виде HTML - PullRequest
0 голосов
/ 14 декабря 2018

Привет! У меня есть форма для добавления участников с датой их рождения.Поле ввода даты рождения:

<div class="form-group">
   <label for="data_nascita" class="col-sm-3 control-label">Birth Date</label>
       <div class="col-sm-9">
        <input name="data_nascita" type="date" class="form-control" id="data_nascita" placeholder="gg/mm/aaaa"  />
       </div>
</div>

Данные правильно загружены в MYSQL, формат даты -

$data_nascita = ($_POST['data_nascita']);
var_dump($data_nascita); => string(10) "2003-04-15"

В базе данных хранится правильно и выглядит как

2018-12-14 18:50:48

Я хочу иметь возможность редактировать информацию о человеке (т. Е. Изменять дату рождения), и я создал файл редактирования, где вся информация из базы данных извлекается и отображается в полях формы, которые можно редактировать иобновлено в MYSQL.

Все отлично работает, за исключением дат, которые отображаются как gg / mm / aaaa

Код, который я использовал для получения данных, выглядит как обычно:

<?php
    $query = "SELECT data_nascita FROM volontari WHERE id_volontari = '$id'";
       $res = $mysqli ->query($query);
       $row = $res->fetch_array (MYSQLI_ASSOC);
       $data_nascita = gira_data_db($row['data_nascita']);

    function gira_data_db($data)
    {
        $array = explode( "-" , $data);
        $array2 = array($array[2], $array[1], $array[0]);
        $testo = implode( "/" , $array2);
        return $testo;
    }
?>
<div class="form-group">
 <label for="data_nascita" class="col-sm-3 control-label">Birth Date</label>
    <div class="col-sm-9">
      <input name="data_nascita" type="date" class="form-control" id="data_nascita" value="<?php echo $data_nascita ?>" />
    </div>
</div>

Полученная дата

var_dump(gira_data_db($row['data_nascita']);) => string(10) "15/04/2003" 

Однако в моем поле формы данные отображаются как 00/00/0000.Если я отображаю дату в поле ввода type = text, она отображается правильно.

Я что-то не так делаю?

1 Ответ

0 голосов
/ 14 декабря 2018

Проблема в том, что при разборе по массиву '-' [2] задано значение '14 18:50:48 ', и это недопустимое значение для ввода с типом даты.

просто измените функцию gira_data_db следующим образом:

function gira_data_db($data)
{
    return date("YYYY-MM-DD", strtotime($data));
}

Надеюсь, это поможет вам

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...