我正在使用优秀的(但很大)DateJS用于处理我的网络应用程序中的日期和时间的库。我刚刚遇到一些我不知道如何处理的事情。
我希望我的用户能够仅输入时间字符串,而不输入日期,但他们应该能够以他们喜欢的任何方式输入它。例如:
- 5:00 pm
- 17:00
- 5:00pm
- 5:00p
- 5p
- etc.
Using Date.parse(value)
将这些字符串转换为完整日期,这正是我想要的。但是,它还允许用户输入日期字符串的任何其他部分,例如:
- sat 5pm
- 2010年1月1日下午5点
- etc.
我正在尝试使用 DateJS 验证输入字段的时间值。就像是:
function validateTime(value) {
return Date.parse(value) !== null;
}
有没有办法使用 DateJS 功能来解决这个问题?还有其他的所以问题提供解决方案,但如果 DateJS 有办法做到这一点,我真的不想向我的应用程序添加更多自定义代码来执行此操作。
在问我的问题后不久,我发现 Date.parseExact() 可以采用格式字符串数组。不知怎的,我错过了这一点。我设法使用以下代码得到一些东西:
function validateTime(input) {
return Date.parseExact(input, [
"H:m",
"h:mt",
"h:m t",
"ht","h t"]) != null ||
Date.parseExact(input, [
"h:mtt",
"h:m tt",
"htt","h tt"]) != null;
};
请注意,某些格式似乎无法同时包含在一起,这就是为什么我将它们分成两个单独的 parseExact() 调用。在这种情况下,我无法包含任何包含单个的字符串t
其中包含包含双精度的格式字符串tt
in it.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)