在花了一段时间试图弄清楚datetimepicker之后,我几乎没有发现这个问题的原因。问题是我的datetimepicker提交的表单值永远不会与显示的日期一致。我的日期格式为DD/MM/YYYY
,并希望所有日期输入(通过日历编写和选择)都是此值。但是,提交的日期采用用户编写的格式,或格式为YYYY-MM-DD
,但不一致。
因此我无法真正使用提交的日期,因为在使用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
- &gt;正确格式化为01/01/2017
- &gt;后端收到01.01.17
。
如果我写:01/01/2017
- &gt;正确格式化为01/01/2017
- &gt;后端收到01/01/2017
。
如果我选择:01/01/2017
- &gt;正确格式化为01/01/2017
- &gt;后端什么也没收到。
所以显示的格式是正确的,但不是提交的值,怎么回事?
答案 0 :(得分:2)
在datetimepicker更改日期格式以更新范围变量后,您需要触发change-Event。
$('#datetimepicker1').trigger('change')
您可以将其绑定到Bootstrap Datetimepicker事件'dp.change'
$('#datetimepicker1').on('dp.change', function (ev) {
$('#datetimepicker1').trigger('change')
});