我在表单中使用了Bootstrap
DatePicker
,这不是必填字段。因此,每当我提交表单而不在Datepicker
上选择日期时。像01-01-1970
这样的默认值仅存储在datebase
上。我想存储像0而不是此值01-01-1970
。
我使用这样的代码
$('#dateRangePicker1').datepicker({
format: 'dd/mm/yyyy',
autoclose: true,
minDate: 0
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.7.1/css/bootstrap-datepicker.min.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.7.1/js/bootstrap-datepicker.min.js"></script>
<div class="col-xs-12">
<div class="form-group input-group input-append date" id='dateRangePicker4'>
<input type="text" id="cust_dob" class="form-control" name="date4" value="" placeholder="DOB" />
<span class="input-group-addon add-on"><span class="glyphicon glyphicon-calendar"></span></span>
</div>
</div>
答案 0 :(得分:1)
我相信默认情况下,bootstrap datepicker不会设置默认值。您可以在此处查看:Sandbox。您可以打开开发者控制台并尝试
$('#sandbox-container input').datepicker('getDate')
这将为您返回null。如果未将此设置为必需,则 null 将通过表单发送。
我相信你在数据库中设置的是这种行为的原因。我认为你已经将列的类型设置为DATETIME,(也不是null),这使得数据库设置为默认日期,即01-01-1970(Unix时间戳的开始)。如果是这种情况,您可以将列类型设置为varchar,将值设置为某种常见格式(YYYY-mm-dd HH:mm:ss是其中之一)。在客户端,您可以使用一些流行的日期时间库(如MomentJS)来解析时间或生成dateTime字符串以保存到数据库。