Переменная PHP не заполняется в поле datetime-local HTML в форме - PullRequest
0 голосов
/ 31 января 2019

Я пытаюсь заполнить HTML-поле datetime-local переменной PHP $ _POST.Когда я делаю эхо переменной, данные отображаются правильно, но они не заполняются в поле ввода datetime-local.Я уверен, что это синтаксическая ошибка, но не вижу проблемы.Если бы кто-нибудь мог указать мне правильное направление, я был бы признателен.

HTML:

<label>Arrived on site date<input type="datetime-local" name="arriveDate" id="arriveDate" value="<?php echo $arriveDate; ?>"></label>

PHP: этот код не выдает ошибку, но не заполняет поле

$arriveDate = $_POST['arriveDate'];
echo $arriveDate = date("c", strtotime($arriveDate)); 

Я также попробовал следующее, котороене сработало:

  • это дало мне ошибку: встречается некорректно сформированное числовое значение
$arriveDate = $_POST['arriveDate'];
$arriveDate = date('Y-m-d\TH:i:sP',$arriveDate);
  • это не дало мне ошибку, нотакже не заполнял поле
$arriveDate = $_POST['arriveDate'];
$arriveDate = strtotime($arriveDate);

, когда я получаю эхо $_POST['arriveDate']; Я получаю формат 2019-01-31T19: 30 Я надеюсь, что это просто какая-то глупая проблема синтаксиса.Пожалуйста, дайте мне знать, что вы думаете.Спасибо

Ответы [ 2 ]

0 голосов
/ 31 января 2019

Это не идеально, но эти форматы даты довольно сложны.Как вы сказали, вы получаете

 2019-01-31T19:30:00+01:00 

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

 $arriveDate = date("c", strtotime($arriveDate));
 list($Date)=explode('+', $arriveDate);
 $arriveDate = $Date;
 <input type="datetime-local" name="arriveDate" id="arriveDate" value="<?= $arriveDate ?>">
0 голосов
/ 31 января 2019

Согласно MDN datetime-local (если поддерживается вообще) принимает значение в виде гггг-мм-ддчч: мм
Это не ISO-8601 формат, поэтому date('c') не будет работать.Попробуйте что-то вроде:

<?php
$arriveDate = $_POST['arriveDate'];
$arriveDate = date("Y-m-d\TH:i", strtotime($arriveDate));
?>

<form method="POST">
<input type="datetime-local" name="arriveDate" value="<?=$arriveDate; ?>">
<input type="submit">
</form>

Это будет соответствовать формату ввода HTML, без учета часового пояса или секунд.например, 2019-01-31T19:18

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