我有我的用户DOB作为字符串(不要问),我该如何可靠地检查他们是否超过18岁?我会用DateDiff吗?我如何将字符串转换为日期?日期格式为dd/mm/yyyy格式。VBScript如果一个人的出生日期为18岁以上,则可以进行锻炼
非常感谢 乔纳森
我有我的用户DOB作为字符串(不要问),我该如何可靠地检查他们是否超过18岁?我会用DateDiff吗?我如何将字符串转换为日期?日期格式为dd/mm/yyyy格式。VBScript如果一个人的出生日期为18岁以上,则可以进行锻炼
非常感谢 乔纳森
喜欢的东西:
stringDate = "02/12/1990"
if IsDate(stringDate) then
document.write(DateDiff(yyyy, CDate(stringDate), Date()))
end if
是的,你需要CDate将您的字符串,然后则DateDiff(“YYYY”,DATE1,DATE2)转换,因为你只有真正需要的一年。
我需要准确的dob出生,因为我不能允许18岁以下访问,我们的用户都是17或18,所以我需要确保他们是18岁以上。谢谢 – Jonathan 2010-03-30 16:09:10
我只注意到这里的其他痛苦,那就是CDate()可能需要一些特定于语言环境的DD/MM/YYYY的帮助。为此,您可以解析组成部分并将它们反馈给CDate(mm.dd.yyyy) – LesterDove 2010-03-30 16:13:30
这正是我首先想到的。其实......我在“yyyy”部分错了。我认为它比较了几年......但是,它指定了返回的内容......为了清晰起见,我删除了评论。 – Armstrongest 2010-03-30 16:23:37
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) ...
如果什么d=02/09/1994
,ds = 26/07/2012
。 datediff("yyyy", d, ds)
给你18,但是人还不是18,他要等几个月。 也许你需要按月比较?
取出他们的DOB,添加18年,并查看当前日期是否相同或更大。
DOB是一个字符串。这个答案如何解决原始问题? – 2012-10-11 15:55:26
你有工作吗? – Armstrongest 2010-03-30 17:46:39
你有没有试过DontAskDontTell函数? – Smandoli 2010-03-31 14:38:42