Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Date 如何确定用户在表单字段中只输入了日期还是同时输入了时间?_Date_Asp Classic - Fatal编程技术网

Date 如何确定用户在表单字段中只输入了日期还是同时输入了时间?

Date 如何确定用户在表单字段中只输入了日期还是同时输入了时间?,date,asp-classic,Date,Asp Classic,我有一个字段,用户只能在文本字段中输入日期或时间。现在我知道如果我创建两个字段,一个用于日期,一个用于时间,我可以检查时间字段是否为空 我想做的是只有一个字段。如果用户输入结束日期,则只需要时间;如果用户输入日期和时间,则两者都需要时间 我的问题是:如果用户输入“8.12.2013”,它实际上意味着“8.12.2013 0:0:0”,我将其转换为Cdate。但结束时间是2013年12月8日的第一秒,这意味着2013年12月8日意味着在该日期停止(这是一个停止时间字段)。但事实上,如果一个用户写了

我有一个字段,用户只能在文本字段中输入日期或时间。现在我知道如果我创建两个字段,一个用于日期,一个用于时间,我可以检查时间字段是否为空

我想做的是只有一个字段。如果用户输入结束日期,则只需要时间;如果用户输入日期和时间,则两者都需要时间

我的问题是:如果用户输入“8.12.2013”,它实际上意味着“8.12.2013 0:0:0”,我将其转换为Cdate。但结束时间是2013年12月8日的第一秒,这意味着2013年12月8日意味着在该日期停止(这是一个停止时间字段)。但事实上,如果一个用户写了8.1.2013,这意味着滚动到一天结束

当然,我可以做date()>“8.12.2013”,它会工作,但如果用户输入日期和时间,它将不工作,因为它会剥离时间部分

我的问题:ASP中是否有任何函数可以检查日期的时间部分是否在变量中设置?我尝试使用时间,但即使使用Cdate(“8.12.2013”),它也会显示0表示小时,0表示分钟,0表示秒。我需要函数告诉我没有设置时间,这样我就可以使用date()而不是now()进行比较


我希望这是有道理的。

您可以尝试以下简单的方法:

If CLng(myDate) = myDate Then ...
日期被视为超过特定日期的时间等,因此对日期进行积分将删除时间

--编辑--

只需添加到上述代码中:
CLng
将日期和时间转换为日期。通过将其与整个日期进行比较,您可以看到是否包含任何小数部分


请注意,在严格类型化的环境(如.NET)中,这将被视为不好的做法,但经典的ASP类型是变体,具有很强的可塑性。

可能只是在文本字段上设置一个maxlength,这样人们就无法键入足够的字符来包含时间?此外,您可以/应该使用javascript验证文本字段,以确保它只是一个日期,并说“hey just give me a date”。此外,您可以将其视为一个字符串,在空格上拆分,取前半部分(空格之前)并丢弃其余部分。用户可以使用什么格式输入日期?(即始终为mm.dd.yyyy)或是否允许其他格式。如果格式是可预测的,则将句点上的日期拆分为数组。如果数组大小为3,最后一个元素的长度为2或4个字符,则它们只输入了一个日期…我不想放弃任何内容,我想知道用户是否输入了datetime或date only。如果IsDate(var)返回true,Instr(var,“:”)返回>0,则在var中有一个时间,但我根本不想删除该时间。我想看看时间是否也在某个字段中。这不会从日期中删除时间,它只是测试时间是否存在。试试这个代码,看看它是否适合你。