すでにお分かりの通り datetime-local の値は ISO 8601 に準拠していなければなりません。
input 要素 | HTML5 タグリファレンス | W3 Watch Reference
つまり、date() および DateTime::format() に渡す書式指定文字は Y-m-d\TH:i
となります。
また input フォームの初期値は value 属性にセットすることで反映されます。
<input type="datetime-local">-HTML5タグリファレンス
まとめるとこんな感じのコードになります:
php
1<?php
2$date = new DateTime('2017-10-11 09:20:30');
3?>
4<!DOCTYPE html>
5<html>
6<body>
7 <form><input type="datetime-local" value="<?= $date->format('Y-m-d\TH:i') ?>"></form>
8</body>
9</html>
なおデフォルトでは入力は60秒単位、つまり分までしか取り扱いません。もし秒まで取り扱いたい場合は step="1"
属性を追加し、分解能を1秒に変更してください。
php
1<input type="datetime-local" value="<?= $date->format('Y-m-d\TH:i:s') ?>" step="1">
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/10/11 02:47