ASP如何计算时间差
我想算出这个字段与现在时间差是不是大与2年,要精确到日,就是到2014-12-13才能是大与2年 展开
Dim TempDay,StartDay,EndDay
StartDay="2012-12-12"
EndDay="2014-12-13"
TempDay=Datediff("D",StartDay,EndDay) <------- 返回两日期差多少天
TempDay=Datediff("y",StartDay,EndDay) <------- 返回两日期差多少年
'用天数去判断,,例如除以365之类的..不太准确,有时候还有366天..
DateDiff 函数可返回两个日期之间的时间间隔数。
DateDiff 函数用于计算两日期时间的差值,计算方法是 EndDay- StartDay。
若比较年份,则不管月份以下的数值,若比较月份,则不管天数以下的数值...... 以此类推。
还有一种方法.即
Dim NewDay,DBday,TempDay
DBday=rs("shijian")
NewDay=DateAdd("yyyy",2,DBday) '将数据库中取出的时间,加上两年,再去判断
TempDay=Datediff("D",Now(),NewDay) '用加了两年后的新日期和现在的日期计算天数差,正数则表示还没到新日期,反之则表示忆超出为零的时候表示刚好是这一天.
If TempDay>0 Then
Response.Write "还差"&TempDay+1&"天!"
ElseIf TempDay=0 Then
Response.Write "还差"&1&"天!明天就可以了!"
Else
Response.Write "已经超过两年又"&TempDay-1&"天!"
End If
ASP语言中有一个函数就是这个功能,DateDiff():计算两个时间差的时间间隔 。
格式:DateDiff(interval, date1, date2[, firstdayofweek][, firstweekofyear]])
参数说明:
interval 必要。字符串表达式,表示用来计算date1 和 date2 的时间差的时间间隔
Date1和date2 必要;Variant (Date)。计算中要用到的两个日期。
Firstdayofweek 可选。指定一个星期的第一天的常数。如果未予指定,则以星期日为第一天。
firstweekofyear 可选。指定一年的第一周的常数。如果未予指定,则以包含 1 月 1 日的星期为第一周。
interval 参数的设定值如下:
设置 描述
yyyy 年
q 季
m 月
y 一年的日数
d 日
w 一周的日数
ww 周
h 时
n 分钟
s 秒
举例:
如:发布于 1 天前 nov2 格式:datediff("d", nov2,date())>1
发布于 1 小时前 nov2 格式:datediff("h", nov2,now())>1
发布于 3 分钟前 nov2 格式:datediff("n", nov2,now())>3
发布于 26 秒前 nov2 格式:datediff("s", nov2,now())>26
比如:
dateDiff("d","2010-5-1",now())与现在相差多少天
dateDiff("y","2010-5-1",now())与现在相差多少年
dateDiff("m","2010-5-1",now())与现在相差多少月
dateDiff("n","2016-5-1 10:00:00",now())与现在相差多少分钟