时间无法像数字一样直接计算,因为时间不能够直接被计算器和编程语言识别,所以需要使用到一些别的方法。
在JS中可以这样计算:
var d = new Date()//获取当前时间
输出console.log(d.toLocaleString());
假若需要进行天数的计算
d.setDate(d.getDate()+2);
//setDate()方法设置对象的天数,通过getDate()方法获取到对象的天数进行计算再返回到setDate()方法中,这样天数的计算就完成了。
输出console.log(d.toLocaleString(d.setDate(d.getDate()+2)));
其它时间部分的计算也是同理,比如年份、月份、小时、分钟、秒、毫秒。
说到毫秒,还可以使用getTime()方法获取到对象 1970 年 1 月 1 日至今的毫秒数。
再对毫秒进行计算,计算后再转回来。原理都是从时间格式中得到数字再计算;
控制器中时间计算:
在控制器中似乎可以更直接一点
方法是:AddYears();//年份的加减
AddMonths();//月份的加减
AddDays();//日期的加减
AddHours();//小时的加减
AddMinutes();//分钟的加减
AddSeconds();//秒的加减
AddMilliseconds();//毫秒的加减
用法:DateTime dt = DateTime.Now; //首先我们需要DateTime的变量,你可以把你的符合格式的string类型数据直接Convert.ToDateTime(),这里我就用当前日期
dt.AddYears(3); //增加3年
dt.AddMonths(-2);//减少两个月
dt.AddDays(-20);//减少20天
dt.AddHours(+20);//增加20小时
dt.AddMinutes(10);//增加10分钟
整体的话
DateTime time1 =new DateTime(1982,4,24,14,23,06);
DateTime time2 =new DateTime(1982,1,21,8,16,32);
TimeSpan ts= time2.Subtract(time1);
string timespan = "相差:"
+ts.Days.ToString()+"天"
+ts.Hours.ToString()+"小时"
+ts.Minutes.ToString()+"分钟"
+ts.Seconds.ToString()+"秒";
是不是很简单。