wilsonlee1987 15-10-2007 01:04 AM
请求帮忙!
我现在要计算一个病人的年龄!
0b
[Dn%F7`"hL
而且我是要知道她是几岁,几个月,几天!w,[
cYrW\
同时我还要考虑到闰年的计算!
b2U*P
~zX
#bH:};^Io
比如说:Gr"J&_M2y^i
出生日期是:2007年5月18号
Me7Q.p"KL
今天的日期是:2007年10月14日
g9Gbx9C
结果是:0年4月27天
7E{S7o A!~V
&XX nG
[-t9g&A
目前为止,我只计算到年龄罢了!!
Rn3w|/BF
我的code是:
IScY4FM;{I4?
function dateDiff($dformat, $endDate, $beginDate)/E Cw-L~)V$`Y
@6Z
{
(Ei8|-zi^j/U*C
$date_parts1=explode($dformat, $beginDate); TP%umP
$date_parts2=explode($dformat, $endDate);
#Z4M,Mu3Lo"K$}
$start_date=gregoriantojd($date_parts1[0], $date_parts1[1], $date_parts1[2]);4h
_'g
w0fHH E*d+kj.R
$end_date=gregoriantojd($date_parts2[0], $date_parts2[1], $date_parts2[2]);
e
a }9x)H~OA
return $end_date - $start_date;1w*_"xKRs(T*Z
}
/B'K@gT.y LY m
j^f(AK%K}1r
VB~Mz3m%g
$dob="08-08-2005";0M{6dfl,N\/Fj+xk/U
echo round (DateDiff("-", date("m-d-Y", time()), $dob)/365, 0) . " years.";
Wy8O0O u-J kG
.Y7X
V `$Qi,Y0E
[[i] 本帖最后由 wilsonlee1987 于 2007-10-15 01:11 AM 编辑 [/i]]
wilsonlee1987 15-10-2007 01:54 AM
如果用这个会不会准确呢?
]F{S1@%bsZ
$bday="11";Vq:NkAv
$bmonth="02";
uF j-l-V;l5uP
$byear="2005";!M1OV
fUzj
-WB#Ng0]LE/o~
$years = date("Y") - intval($byear);
dGG8R-x(fp|l
$months = date("m") - intval($bmonth);$w1Gc)xr1y
$days= date("d") - intval($bday);.H6e(M1xBnJS
D,s8s.yF6p!o%A
//If birthday is after today, he/she has one year old less
?#s0fwAW7d0z
$day = str_pad(intval($bday), 2, "0", STR_PAD_LEFT);
y.rYk*T
$month = str_pad(intval($bmonth), 2, "0", STR_PAD_LEFT);
W,g"m,J5EZ^
if(intval("$month$day") > intval(date("md")))
K/fd$M9C
$years -= 1;-MSw!^8V
#n5y\+GMo!rZ
M}%x!A \ep
g
rBp"w{F
echo $years."-".$months."-".$days;
Sour_Kim 15-10-2007 04:58 PM
不用怀疑。。O-O6FDc2gB'J
jJ#U vQ#H?q
我看不懂。。:ONI18:
极帝猫 18-10-2007 07:17 PM
日期的运算都交给 MySQL 做,不需要用 Php。
`iI }!U*z0p,AH
b2Fo2D
sFqB]?'[
几岁:SELECT (YEAR(CURDATE())-YEAR('2007-05-18'))7?s
@] H
z t]
几天:SELECT DATEDIFF(CURDATE(),'2007-05-18')
~/vu4pd'kw'd
%P&^ `zZJ;zYL
你可以参考 MySQL 的 Date and Time Functions。
nK6^4m@dJ ?.m
[url]http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html[/url]
wilsonlee1987 18-10-2007 08:53 PM
回复 4楼 神仙猫 的帖子
这个我懂!0J IsW1^zMz+f
我的意思是RV1Q{*y t
出现几岁几个月几天!! @J)\4\q
B#`#m
不是只单单出现几岁或几天!!
极帝猫 19-10-2007 10:17 AM
回复 5楼 wilsonlee1987 的帖子
稍微动一下你的脑筋吧。。方法已经给你了。
}8iX+W9~V
把各别的 SQL Query 分开来找,在用 Php 组合在一起,
7h0pY0C%q@zBx*s+E
就可以做出你需要的了。