jquery - 计算格式为 12 小时(上午,下午)的员工的工作时间
问题描述
在我的考勤门户中,员工通过提供签入时间和签出时间来标记考勤。我正在使用时间格式为 12 小时(上午,下午)的 Bootstrap datetimepicker。我想计算员工每天的总工作时间,但我面临日期时间格式问题。那么,当格式为 12 小时(上午,下午)时,如何计算员工每天的总工作时间
这是我的视图代码
<div class="col-md-3">
<label>Date <span class="text-danger">*</span></label>
<div id="datepicker" class="input-group date" data-link-field="dtp_input2" data-date-format="dd/mm/yyyy" data-link-format="dd/mm/yyyy">
@*<input class="form-control" type="text" readonly />*@
@Html.TextBoxFor(model => model.Date, new { @class = "form-control", autocomplete = "off" })
<span class="input-group-addon"><span class="glyphicon glyphicon-remove"></span></span>
<span class="input-group-addon"><i class="glyphicon glyphicon-calendar"></i></span>
</div>
<input type="hidden" id="dtp_input2" value="" /><br />
</div>
<div class="col-md-3">
<label>Check In <span class="text-danger">*</span></label>
@*<input type="datetime-local" id="CheckIn" name="CheckIn">*@
<div class="input-group date form_datetime" data-date="" data-date-format="mm/dd/yyyy HH:ii p" data-link-field="dtp_input1" data-link-format="mm/dd/yyyy HH:ii ">
@Html.TextBoxFor(model => model.CheckIn, new { @class = "form-control", autocomplete = "off", required = "required" })
<span class="input-group-addon"><span class="glyphicon glyphicon-remove"></span></span>
<span class="input-group-addon"><span class="glyphicon glyphicon-time"></span></span>
</div>
<input type="hidden" id="dtp_input1" value="" /><br />
</div>
<div class="col-md-3">
<label>Check Out</label>
@*<input type="datetime-local" id="CheckOut" name="CheckOut">*@
<div class="input-group date form_datetime2" data-date="" data-date-format="mm/dd/yyyy HH:ii p" data-link-field="dtp_input3" data-link-format="mm/dd/yyyy HH:ii ">
@Html.TextBoxFor(model => model.CheckOut, new { @class = "form-control", autocomplete = "off" })
<span class="input-group-addon"><span class="glyphicon glyphicon-remove"></span></span>
<span class="input-group-addon"><span class="glyphicon glyphicon-time"></span></span>
</div>
<input type="hidden" id="dtp_input3" value="" /><br />
</div>
<div class="row">
<div class="col-md-12">
<input type="button" id="save" class="btn btn-primary" value="Mark Attendance" />
@Html.ActionLink("My Attendance", "Index", "Attendance")
</div>
</div>
<script>
$("#save").click(function () {
var obj = {
Emp_Id : $(Emp_Id).val(),
Date: $("#Date").val(),
CheckIn: $("#CheckIn").val(),
CheckOut: $("#CheckOut").val(),
};
//window.location.href = "/path/to/thankyoupage"
var Url = '@Url.Action("Create", "Attendance")';
$.ajax({
url: Url,
type: "POST",
data: obj,
dataType: "html",
success: function (data) {
if (data.isError==false) {
alert(data.message);
}
}
});
})
</script>
这是我的控制器代码
[HttpPost]
public JsonResult Create(Attendance attendance)
{
// if (attendance.Date == todayDate) return BadRequest("Too late or too early");
// var hasAttendance = db.Attendance.Any(i => i.Emp_Id = attendance.Emp_Id && i.Date == todayDate);
//DateTime tempDate = Convert.ToDateTime(attendance.Date);
if (ModelState.IsValid)
{
try
{
attendance.CheckIn = Convert.ToDateTime(attendance.CheckIn.ToString("yyyy-MM-dd HH:mm:ss"));
attendance.CheckOut = Convert.ToDateTime(attendance.CheckOut.Value.ToString("yyyy-MM-dd HH:mm:ss"));
attendance.Date = DateTime.Now;
var attdate = attendance.Date;
var nextdate = attdate.AddDays(1);
var id = Convert.ToInt32(Session["UserID"]);
var isExist = db.Attendance.FirstOrDefault(i => i.Emp_Id == id && i.Date == attdate && i.Date < nextdate);
if (isExist != null)
{
//return Content("<script language='javascript' type='text/javascript'>alert('Your Attendance is Already Marked');</script>");
//ViewBag.isExist = false;
//TempData["Msg"] = ("Your Attendance is Already Marked");
var kMessage = "Your Attendance is Already Marked";
//return RedirectToAction("Index", "Attendance", new { message = kMessage });
return Json(new { isError = false, message = kMessage });
}
else
{
//attendance.Emp_Id = id;
//var res = tempDate.Date;
db.Attendance.Add(attendance);
db.SaveChanges();
ViewBag.kMessage = "";
}
}
catch (Exception ex)
{
Console.WriteLine(ex.InnerException.Message);
}
}
return Json(new {isError=false,message="YAAAAAAAAAAAAY" });
//return RedirectToAction("Index", "Attendance");
}
解决方案
推荐阅读
- python - Python: Counting words from a directory of txt files and writing word counts to a separate txt file
- mips - MIPS 堆栈段无法扩展
- swift - 将 textview 的内容快速写入 RTF 文件不起作用 XCODE 12.4
- node.js - 是否可以仅将用户的所有任务的 SLURM 工作情况作为字符串获取?
- search - VS Code 搜索结果未显示某些命中的行的前导部分
- html - 我可以使用 relative并在使用时转到当前页面上的命名锚点
吗? - java - 即使有 5 个实例,也仅在 1 个 EC2 上运行操作
- arrays - 如何遍历二维数组并将单词值提取到数组中。另外,如何从数组中的单词创建一个点系统
- automated-tests - 空手道 - locateAll 过滤器和输入字段
- python - 在 MatPlotLib 中向 NetworkX 图形添加填充