大家都知道时间是很重要的,所以你能在很多地方发现显示时间。但有时知道了当前时间还不够,比如你决定做某件事一个小时,知道了当前时间却忘记了开始时间。这时就需要一个记录开始时间的功能,最好就是显示出已经开始了多久。
废话不多说,开始做这样一个功能吧。经前文所述,功能的前提是记录开始时间。若是在一个项目中,通常是记录在Session里以便取用。
Session["dateTime"] = DateTime.Now.ToString("yyyy-MM-dd HH:mm");//记录开始时间;
//获取登录时间
string date1 = Session["dateTime"].ToString();
//将字符串类型的登录时间转换成 DateTime 类型
DateTime date1Time= Convert.ToDateTime(date1);
//获取当前时间
DateTime date2Time= DateTime.Now;
//计算时间差
TimeSpan date3Time = date2Time - date1Time;
//将时间差转换成分钟的格式
double minutes = date3Time.TotalMinutes;
//转换成int类型
int intMinutes = Convert.ToInt32(minutes);
这样就获得了当前时间距开始时间的分钟数,最后输出就行了。
有了这样一个方法后,还要让它能够自动更新显示。这就要使用到计时器方法了,设置每隔1分钟调用一次方法。
那是不是可以再精确一点、再直观一点,可以的。
同样是计算出时间差 date3Time;
//计算出相差天数
var days=Math.floor(date3Time /(24*3600*1000));
//计算出小时数
var leave1= date3Time %(24*3600*1000); //计算天数后剩余的毫秒数
var hours=Math.floor(leave1/(3600*1000));
//计算相差分钟数
var leave2=leave1%(3600*1000); //计算小时数后剩余的毫秒数
var minutes=Math.floor(leave2/(60*1000));
//计算相差秒数
var leave3=leave2%(60*1000); //计算分钟数后剩余的毫秒数
var seconds=Math.round(leave3/1000);
//显示在提示框
alert(" 相差 "+days+"天 "+hours+"小时 "+minutes+" 分钟"+seconds+" 秒");
显示在页面//记录登录时长的变量 var strLoginTime = "";
if (days > 0) {
strLoginTime += days + "天";
}
if (hours > 0) {
strLoginTime += hours + "小时";
}
if (minutes > 0) {
strLoginTime += minutes + "分钟";
}
strLoginTime += seconds + "秒";
//将计算出来的登录时长放到主页面
$("#LoginTime").text(strLoginTime);
当然计时器是少不了的,间隔时间为1秒。
博客介绍了使用JS实现记录开始时间并计算与当前时间差的功能。先将开始时间记录在Session里,再将字符串类型的时间转换为DateTime类型进行计算。还介绍了让结果自动更新显示的方法,以及更精确直观地计算和显示时间差到天、时、分、秒。

6874

被折叠的 条评论
为什么被折叠?



