数据库录入时间
问题:
- 在已知日期的前提下记录下时间并保存在数据库。
实例:
在确定值班日期的同时,将开始和结束时间存入数据库,数据库中开始时间和结束时间的字段类型是datetime,所以采用拼接的形式,将获取到的值班日期与时间拼接后存入数据库。
代码:
弹框部分的代码
- 将最终传入数据库的开始时间和结束时间进行隐藏。
<div class="form-group">
<label >值班日期</label>
<input disabled="disabled" name="ddate" id="ddate2" class="form-control myModal-input">
</div>
<div class="form-group">
<label >开始时间</label>
<input id="finalBtime" type="hidden"name="btime" class="form-control myModal-input">
<input type="time" id="PingJieBtime" name="pjbtime">
</div>
<div class="form-group">
<label >结束时间</label>
<input id="finalEtime" type="hidden" name="etime" class="form-control myModal-input">
<input type="time" id="PingJieEtime" name="pjetime">
</div>
字符串拼接代码
- 将获取到的时间和日期字符串进行拼接,再存入到表单中跟随表单提交。
- 在计算时长时,用开始时间减去结束时间加了一个判断。
$("#btnEdit").click(function (dno) {
var dateStr=$("#ddate2").val()
var PingJieBtime=$("#PingJieBtime").val()
var PingJieEtime=$("#PingJieEtime").val()
var bh=PingJieBtime.substring(0,PingJieBtime.indexOf(":"))
var bm=PingJieBtime.substring(PingJieBtime.indexOf(":")+1)
var eh=PingJieEtime.substring(0,PingJieEtime.indexOf(":"))
var em=PingJieEtime.substring(PingJieEtime.indexOf(":")+1)
var f=PingJieBtime>PingJieEtime;
if(f){
layer.msg("开始时间不能在结束时间之后", {time: 1000, icon: 5, shift: 6}, function () {
});
return;
}
var h=eh-bh;
var m=em-bm;
if(m>=0&&m>=30){h=h+1}
if(m>=0&&m<30){h=h}
if(m<0&&m*(-1)>30){h=h-1}
if(m<0&&m*(-1)<=30){h=h+1}
$("#time").val(h);
var b=dateStr+" "+PingJieBtime;
$("#finalBtime").val(b)
var e=dateStr+" "+PingJieEtime;
$("#finalEtime").val(e)
$.ajax({
url: "/EduManage/dutyEditDo",
type: "post",
data:$("#dutyEditFrom").serialize(),"dno":dno,
success: function (date) {
if (date.result) {
layer.msg("保存成功", {time: 1000, icon: 4}, function () {
location.href = "/EduManage/dutylist";
});
}
}
});
});
数据库展示:
如果遇到类上已经添加时间转换的注解,如下。
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date btime;