2010-03-30 1 views
1

사용자 DOB가 문자열로 표시됩니다 (묻지 않음). 어떻게하면 18 세 이상인지 쉽게 확인할 수 있습니까? DateDiff를 사용합니까? 문자열을 날짜로 먼저 변환하는 방법은 무엇입니까? 날짜는 dd/mm/yyyy 형식입니다.VBScript 생년월일을 기준으로 18 세 이상인 사람에게만 적용됩니다.

많은 감사 조나단

+0

작동 시키셨습니까? – Armstrongest

+0

DontAskDontTell 함수를 사용해 보셨습니까? – Smandoli

답변

0

뭔가 :

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

네, 당신은 당신은 정말 년이 필요하기 때문에 다음 문자열과 참조 DateDiff ("YYYY", 날짜 1, 날짜 2)를 변환에서는 CDate이 필요합니다. 같은

+0

내가 18 세 이하의 액세스를 허용 할 수 없기 때문에 dob birth로 정확한해야합니다. 사용자가 모두 17 명 또는 18 명이므로 18 세 이상이어야합니다. 감사합니다. – Jonathan

+0

방금 ​​다른 고통을 발견했습니다. CDate()는 로케일 고유의 DD/MM/YYYY에 대한 도움이 필요할 수 있습니다. 이를 위해, 구성 부품을 파싱하고 CDate (mm.dd.yyyy) – LesterDove

+0

으로 다시 피드 할 수 있습니다. 정확히 처음 생각한 것입니다. 사실 ... 나는 "yyyy"부분에서 틀렸어. 나는 그것이 수년을 비교했다고 생각했다. 그러나 오히려, 그것은 반환되는 것을 명시한다 ... 나는 명확성을 위해 주석을 삭제했다. – Armstrongest

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/1994, ds = 26/07/2012을. datediff("yyyy", d, ds)는 18 세이지만 18 세가 아닌 사람은 몇 달을 기다려야합니다. 어쩌면 월별로 비교해야합니까?

-2

DOB를 가지고 18 년을 추가하고 현재 날짜가 같거나 더 높은지 확인하십시오.

+0

DOB는 문자열입니다. 이 대답은 원래의 문제를 어떻게 해결합니까? –