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')
});
在花了一段时间试图找出日期时间选择器之后,我几乎没有找到这个问题的原因。问题是我的 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')
});