2013-12-10 3 views
0

나는 사용자가 텍스트 필드에 날짜 또는 시간 만 입력 할 수있는 필드가 있습니다. 이제 내가 2 개의 필드를 만들었는지, 하나는 날짜를, 하나는 시간을, 나는 시간 필드가 비어 있는지 확인할 수 있습니다.사용자가 양식 필드에 날짜 또는 시간 만 입력했는지 확인하는 방법은 무엇입니까?

내가 원하는 것은 하나의 필드 만 있습니다. 사용자가 종료 날짜를 입력하면 시간 만 걸리고 사용자가 날짜와 시간을 입력하면 둘 다 소요됩니다.

내가 가진 문제는 다음과 같습니다. 사용자가 "8.12.2013"을 입력하면 실제로 "8.12.2013 0 : 0 : 0"을 의미하여 Cdate로 변환합니다. 그러나 종료 시간은 8.12.2013의 첫 번째 초입니다. 즉, 8.12.2013은 해당 날짜에 중지를 의미합니다 (중지 시간 필드). 그러나 실제로 사용자가 8.1.2013을 쓰는 경우에는 하루가 끝날 때까지 롤업을 의미합니다.

당연히 date()> "8.12.2013"을 수행 할 수 있지만 작동하지만 사용자가 날짜와 시간을 입력하면 시간 부분을 제거하므로 작동하지 않습니다.

내 질문 : 날짜의 시간 부분이 변수에 설정되어 있는지 확인하는 ASP의 함수가 있습니까? TIME을 사용하려고했지만 Cdate ("8.12.2013")가 사용 되더라도 몇 시간 동안 0, 분 동안 0 및 초 동안 0을 표시합니다. 함수가 필요해 시간이 설정되어 있지 않아 now() 대신 date()를 사용하여 비교할 수 있습니다.

나는 그것이 의미가 있기를 바랍니다. 그러므로 시간을 제거 할 날짜를 integerising,

If CLng(myDate) = myDate Then ... 

날짜 등 특정 날짜 과거의 시간으로 간주됩니다

+0

어쩌면 사람들이 시간을 포함 할만큼 충분한 문자를 입력 할 수 없도록 텍스트 필드에 maxlength를 설정하면됩니까? 또한, 당신은/그냥 그냥 날짜를 보장하기 위해 자바 스크립트 텍스트 필드의 유효성을 검사 할 수 "이봐, 그냥 내게 날짜를 줘" – Lenny

+0

또한, 당신은 그냥 문자열로 취급하고 공간에 분할하고 첫 번째 걸릴 수 절반 (공간 앞)과 나머지는 버려야합니다. – Lenny

+0

사용자가 어떤 형식으로 날짜를 입력 할 수 있습니까? (I.E. 항상 mm.dd. yyyy) 또는 다른 형식을 허용합니까? 형식이 예측 가능한 경우 해당 기간의 날짜를 배열로 나눕니다. 배열 크기가 3이고 마지막 요소가 2 또는 4 문자 길이라면, 그들은 단지 날짜를 입력했습니다 ... – Sparky

답변

0

당신은 간단하게 뭔가를 시도 할 수 있습니다.

- 편집 -

그냥 위의 코드에 추가하려면 : CLng 그냥 날짜로 날짜 시간으로 변환됩니다. 전체 날짜와 비교하여 분수 부분이 포함되어 있는지 확인할 수 있습니다.

.NET과 같이 엄격하게 입력 된 환경에서는이 방법이 좋지 않을 수 있지만 Classic ASP 유형은 변형되어 있으며 매우 유연합니다.

+0

그러나 나는 그 시간을 전혀 제거하고 싶지 않습니다. 시간이 현장에 있는지 아닌지보고 싶습니다. – Jerry2

+0

이것은 시간이 있는지 단순히 테스트하는 날짜에서 시간을 제거하지 않습니다. 코드를 시험해보고 효과가 있는지 확인하십시오. – Paul

관련 문제