本帖最后由 pobopo 于 2010-10-11 02:40 编辑
用time()函数可以直接计算时间,结果为时间序数,如果存入数字型字段,显示为个位为零的小数,如果存入日期时间型字段,显示为日期时间格式,其中的日期显示为1899-12-31。
特别地,time(0,0,0)显示结果:
数字型字段的显示: 0.0
日期时间型字段的显示:1899-12-31 00:00:00
特别地,date(2010,10,10,)+time(12,1,0),
日期时间型字段的显示结果:2010-10-10 12:01:00
date(1899,12,31)+time(0,0,0),
日期时间型字段的显示结果:3799-12-31 00:00:00
date(2010,10,10,)+time(0,0,0),
日期时间型字段的显示结果:2010-10-10 00:00:00
直接计算时间,比如:
time(25,44,10)+time(1,0,0)
其结果分别显示为:
数字型字段的显示: 0.11 (这里是小数位数设为2位时的显示)
日期时间型字段的显示:1899-12-31 02:44:10
利用数字型字段保存的时间序数值,换算出小时、分钟和秒后,就可以组合成时间格式显示出来。
另:日期型和日期时间型是同类型字段,因为其值都是时间序列数,所以它们之间可以相互计算,比如:
date(2010,10,10,)+time(12,1,0)
存入日期时间型字段的值显示出的结果为:
2010-10-10 12:01:00
====换算及显示:
(time(25,44,10)+time(1,0,0))
----时
int(A*24)
int((time(25,44,10)+time(1,0,0))*24)
----分
int((A*24-int(A*24))*60)
int(((time(25,44,10)+time(1,0,0))*24-int((time(25,44,10)+time(1,0,0))*24))*60)
----秒
int(((A*24-int(A*24))*60)-int((A*24-int(A*24))*60))*60)
int(((((time(25,44,10)+time(1,0,0))*24-int((time(25,44,10)+time(1,0,0))*24))*60)-int(((time(25,44,10)+time(1,0,0))*24-int((time(25,44,10)+time(1,0,0))*24))*60))*60)
round(((((time(25,44,10)+time(1,0,0))*24-int((time(25,44,10)+time(1,0,0))*24))*60)-int(((time(25,44,10)+time(1,0,0))*24-int((time(25,44,10)+time(1,0,0))*24))*60))*60,0)
-----以时间格式显示
if(len($MF(小时)$)=1,"0"&$MF(小时)$,$MF(小时)$)&":"&if(len($MF(分钟)$)=1,"0"&$MF(分钟)$,$MF(分钟)$)&":"&if(len($MF(秒)$)=1,"0"&$MF(秒)$,$MF(秒)$)
====换算及显示。
参见附件截图和测试模版。 |