คำสั่งแบบมีเงื่อนไข ASP Vbscript แบบคลาสสิกสำหรับเวลา () ไม่ได้ให้ผลลัพธ์ที่ถูกต้อง

ฉันกำลังทำงานกับคำสั่งแบบมีเงื่อนไขอย่างง่ายใน vbscript เพื่อตรวจสอบว่าเวลานั้นเร็วกว่าเวลาอื่นหรือไม่ และมันใช้งานไม่ได้หรือไม่สมเหตุสมผลเลย แค่ใช้วันที่ดูเหมือนจะได้ผล แต่ฉันต้องใช้เวลา... ซึ่งไม่ได้ผล

dim startDateStartTime, CurrentDateCurrentTime

                startDateStartTime = FormatDateTime("12:00:00 PM")
                    response.Write("The Course Starts at: ["&startDateStartTime&"]<br/>")

                CurrentDateCurrentTime = FormatDateTime("5:00:00 AM")
                    response.Write("The Current Time is: ["&CurrentDateCurrentTime&"]<br/>")


                if CurrentDateCurrentTime < startDateStartTime then

                    response.Write("The current time is less then the course start time. Keep Course open")

                else

                    response.Write("The current time is greater then the course start time. Close Course")

                end if

ผลลัพธ์สำหรับคำสั่งนี้คือ:

หลักสูตรเริ่มเวลา: [12:00:00 PM]

เวลาปัจจุบันคือ: [5:00:00 น.]

เวลาปัจจุบันมากกว่าเวลาเริ่มต้นหลักสูตร ปิดหลักสูตร

ซึ่งผิดชัดเจนเพราะตี 5 น้อยกว่า 12.00 น. ฉันไม่เข้าใจเหรอ?


person NeoSketo    schedule 04.05.2015    source แหล่งที่มา


คำตอบ (2)


FormatDateTime() ส่งกลับสตริง:

>> WScript.Echo TypeName(FormatDateTime("12:00:00 PM"))
>>
String

ดังนั้นของคุณ

if CurrentDateCurrentTime < startDateStartTime then

เปรียบเทียบสตริงที่ขึ้นต้นด้วย "5" กับสตริงที่ขึ้นต้นด้วย "1" คุณต้องเปรียบเทียบ (ตัวแปรของประเภทย่อย) วันที่

person Ekkehard.Horner    schedule 04.05.2015

ในการเปรียบเทียบวันที่/เวลา คุณควรใช้ฟังก์ชัน DateDiff

DateDiff(interval, date1, date2, [firstdayofweek], [firstweekofyear])
person Zam    schedule 04.05.2015