2017-01-04 13 views
1

Проведя некоторое время, пытаясь выяснить, что происходит с datetimepicker, я едва ли могу найти причину этой проблемы. Проблема в том, что мое значение datetimepicker, представленное в форме, никогда не совпадает с отображаемой датой. У меня есть дата в формате DD/MM/YYYY и желаю, чтобы все входы даты (как написанные, так и выбранные по календарю) были этим значением. Однако дата отправления находится в формате, который пользователь пишет, или в формате YYYY-MM-DD, но не согласован.Значение DateTimePicker не согласуется с отображаемой датой

Из-за этого я не могу использовать дату, потому что она будет форматироваться в неправильную дату при использовании strtotime и так далее.

Я добавил DateTimePicker следующим образом:

<input type='text' class="form-control" id='datetimepicker1' name="birthday" ng-model="signUpInfo.birthday" placeholder="Fødselsdato" required="true"> 

<script type="text/javascript"> 
    $(function(){ 
     $("#datetimepicker1").datetimepicker({ 
      format: 'DD/MM/YYYY', 
      minDate: moment().subtract(140,"years"), 
      maxDate: moment() 
     }); 
    }); 
</script> 

Если я написать: 01.01.17 -> форматы в 01/01/2017 правильно -> фоновым получает 01.01.17.

Если я написать: 01/01/2017 -> форматы в 01/01/2017 правильно -> фоновым получает 01/01/2017.

Если я выбрать: 01/01/2017 -> форматов в 01/01/2017 правильно -> фоновое ничего не получает.

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

+0

Вы переопределяя представить в форме и получать данные сами каким-то образом? –

+0

@AlexandruSeverin Форма не переопределяется, единственным «переопределением» является всякий раз, когда пользователь сам вводит дату в поле ввода, но опять же, datetimepicker форматирует это правильно на дисплее, но не в значении. – PhyCoMath

+0

Я не могу воспроизвести вашу проблему. Попробуйте этот jsfiddle: https://jsfiddle.net/0Ltv25o8/4390/. Импортируйте свою собственную версию datetimepicker. Возможно, вы можете воспроизвести проблему или найти ответ во время попытки. –

ответ

2

Вам необходимо вызвать событие-изменение после того, как datetimepicker изменил формат даты, чтобы обновить переменные области видимости.

$('#datetimepicker1').trigger('change') 

Вы можете связать это бутстрапом DateTimePicker событие «» dp.change

$('#datetimepicker1').on('dp.change', function (ev) { 
    $('#datetimepicker1').trigger('change') 
}); 
+0

Это сработало отлично! Однако почему у datetimepicker нет этой встроенной гостиницы? Кому нужен формат даты для отображения ТОЛЬКО? – PhyCoMath

+0

Datetimepicker использует jQuery. Остальное ist AngularJS. Он правильно отправил данные в виде ввода чистой HTML-формы, но не вместе с AngularJS. – pixelarbeit

 Смежные вопросы

  • Нет связанных вопросов^_^