datetimepicker изменить отображение без формата

У меня есть форма, в которой я использую загрузчик datetimepicker.

HTML:

<div class='input-group date' id='datetimepicker1' style="width:35%">
<input type='text' class="form-control" id="prodStart" name="prodStart" required=""/>
<span class="input-group-addon">
  <span class="glyphicon glyphicon-calendar"></span>
</span>

javascript:

var dateTimeSettings = {
    format: 'dd  DD/MM/YYYY hh:mm A'
  }
$('#datetimepicker1').datetimepicker(dateTimeSettings);

Я недавно изменил формат на указанный выше, так как мне не понравилось отображение формата по умолчанию.

Моя проблема возникает, когда я POST данные, req.body.prodStart теперь возвращает строку, а не объект даты ( ISO() ), который я ранее получал и вокруг которого был построен код моего приложения.

Если я изменю dateTimeSettings на {}, req.body.prodStart вернет объект. Это то, что я хочу в бэкэнде, но теперь пользователь видит нежелательный формат при заполнении формы.

Как я могу сохранить формат объекта в формате req.body.prodStart и dd DD/MM/YYYY hh:mm A отображения в форме.


person seamusgalla    schedule 18.11.2015    source источник


Ответы (1)


Вы можете сохранить дату в формате ISO 8601 в скрытом поле:

<input type='hidden' id="prodStart" name="prodStart" />

Это поле должно обновляться при каждом изменении даты:

$('#datetimepicker1').on('dp.change', function(e) {
  $('#prodStart').val(e.date.format());
})

Скрытое поле с датой ISO будет отправлено на сервер, а текстовый ввод будет содержать дату в вашем пользовательском формате.

См. этот JSFiddle.

person alxersov    schedule 10.12.2015