DateTimePicker值与显示的日期不一致

时间:2017-01-04 14:28:11

标签: javascript jquery angularjs datetimepicker datetime-format

在花了一段时间试图弄清楚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;后端什么也没收到。

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

1 个答案:

答案 0 :(得分:2)

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

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

您可以将其绑定到Bootstrap Datetimepicker事件'dp.change'

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