计算两个时间段之间相差的天数,简单说一下思路:
首先获取两个时间段的时间值,分别将他们转换为毫秒数,在进行除以每天(24*60*60*1000)的毫秒数,那就得到了相差的天数了;
插件:
<script src="~/Content/JS/jquery-2.1.4.js"></script>
页面代码:
<div>
<span>开始时间</span>
<input type="date" id="Startdate" />
<span>起止时间</span>
<input type="date" id="Enddate" />
<button onclick="Dateclick()">计算时间差</button>
<input id="Date"/>
</div>
Js中的计算代码:
function Dateclick() {
var Startdate = $("#Startdate").val().trim();
var Enddate = $("#Enddate").val().trim();
if (Startdate != "" && Enddate != "") {
var start, end, days;
//start = new Date(Startdate);//先转换为时间类型的
//end = new Date(Enddate);
//start = start.getTime();//geTime() 返回 1970/1/1 午夜距离该日期时间的毫秒数
//end = end.getTime();
start = Date.parse(Startdate);
//parse() 方法可解析一个日期时间字符串,并返回 1970/1/1 午夜距离该日期时间的毫秒数。
end = Date.parse(Enddate);
days = Math.floor(Math.abs(start - end) / (24 * 3600 * 1000));
//Math.abs() 返回数的绝对值 精确到毫秒。
//Math.floor() 对数进行下舍入 -0.1转为1, 0.1转为0。
$("#Date").val(days);
}
else {
window.alert("请选择时间");
}
}
控制器计算代码:
function Dateclick() {
var Startdate = $("#Startdate").val().trim();
var Enddate = $("#Enddate").val().trim();
//var Startdate = "2019-01-12 13:12:55";
//var Enddate = "2019-01-23 15:17:54"
if (Startdate != "" && Enddate != "") {
$.post("/LianXi/Date", { Startdate: Startdate, Enddate: Enddate }, function (data) {
$("#Date").val(data);
});
}
else {
window.alert("请选择时间");
}
}
控制器代码:
public string Date(DateTime Startdate, DateTime Enddate)
{
string Days = null;
try
{
TimeSpan Start = new TimeSpan(Startdate.Ticks);
TimeSpan End = new TimeSpan(Enddate.Ticks);
//int Day = Start.Days - End.Days;
//if (Day < 0)//判断时间天数是否为负
//{
// //Days = Day.ToString().Substring(1); //将"-"截取舍去;
// Days = Day.ToString().Replace("-", "");//将"-"替换为空;
//}
//else
//{
// Days = Day.ToString();
//}
TimeSpan Date = Start.Subtract(End).Duration();
//Subtract()函数是TimeSpan时间相减,前值减去函数中的值,Duration()函数是获取TimeSpan的绝对值;
//// Days = Date.Days.ToString();//.Days获取时间间隔天数部分;
Days = Date.TotalDays.ToString();
//string[] Day = Days.Split('.');//适合参数值精确到时分秒的值;
//Days = Day[0];
}
catch
{
throw;
}
return Days;
}
运行结果图: