DateTimePicker 值与显示日期不一致

DateTimePicker value is not consistent with displayed date

在花了一段时间试图找出日期时间选择器之后,我几乎没有找到这个问题的原因。问题是我的 datetimepicker 提交的表单值与显示的日期永远不一致。我有 DD/MM/YYYY 格式的日期,并希望所有日期输入(写入和 select 通过日历输入)都是这个值。但是提交日期是用户写的格式,还是格式YYYY-MM-DD,不一致

因此我不能真正使用提交的日期,因为在使用 strtotime 等时它会格式化为错误的日期。

我通过以下方式添加了日期时间选择器:

<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.

如果我 select: 01/01/2017 -> 正确格式化为 01/01/2017 -> 后端什么也接收不到。

所以显示的格式是正确的,但是提交的值不是,怎么回事?

您需要在 datetimepicker 更改日期格式后触发 change-Event 以更新您的范围变量。

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

您可以将其绑定到 Bootstrap 日期时间选择器事件 'dp.change'

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