2010-03-30 36 views

回答

0

喜欢的东西:

stringDate = "02/12/1990" 
if IsDate(stringDate) then 
    document.write(DateDiff(yyyy, CDate(stringDate), Date())) 
end if 
0

是的,你需要CDate将您的字符串,然后则DateDiff(“YYYY”,DATE1,DATE2)转换,因为你只有真正需要的一年。

+0

我需要准确的dob出生,因为我不能允许18岁以下访问,我们的用户都是17或18,所以我需要确保他们是18岁以上。谢谢 – Jonathan 2010-03-30 16:09:10

+0

我只注意到这里的其他痛苦,那就是CDate()可能需要一些特定于语言环境的DD/MM/YYYY的帮助。为此,您可以解析组成部分并将它们反馈给CDate(mm.dd.yyyy) – LesterDove 2010-03-30 16:13:30

+0

这正是我首先想到的。其实......我在“yyyy”部分错了。我认为它比较了几年......但是,它指定了返回的内容......为了清晰起见,我删除了评论。 – Armstrongest 2010-03-30 16:23:37

0

VBScript的CDate函数使用当前区域设置将日期转换。你可能会遇到问题。

另一种方法是做了很长的路,并解析日期出来:

d = "02/05/1984" 

sYear = cint(right(d,4)) 
sMonth = cint(mid(4,2)) 
sDay = cint(left(d,2)) 

ds = DateSerial(sYear, sMonth, sDay) 

现在你可以做你的则DateDiff:

if (DateDiff("yyyy", d, ds) > 18) ... 
0

如果什么d=02/09/1994ds = 26/07/2012datediff("yyyy", d, ds)给你18,但是人还不是18,他要等几个月。 也许你需要按月比较?

-2

取出他们的DOB,添加18年,并查看当前日期是否相同或更大。

+0

DOB是一个字符串。这个答案如何解决原始问题? – 2012-10-11 15:55:26