gpt4 book ai didi

javascript - 使用 DateJS 仅解析时间字符串

转载 作者:数据小太阳 更新时间:2023-10-29 03:48:18 26 4
gpt4 key购买 nike

我正在使用优秀(但大)DateJS在我的 webapp 中处理日期和时间的库。我刚刚遇到一些我不确定如何处理的事情。

我希望我的用户只能输入时间字符串,不能输入日期,但他们应该能够以他们喜欢的任何方式输入。例如:

  • 下午 5:00
  • 17:00
  • 下午 5:00
  • 下午 5:00
  • 5p
  • 等等

使用 Date.parse(value) 将这些字符串转换为完整日期,这正是我想要的。但是,它也允许用户输入日期字符串的任何其他部分,例如:

  • 下午 5 点
  • 2010 年 1 月 1 日下午 5 点
  • 等等

我正在尝试使用 DateJS 来验证时间值的输入字段。像这样的东西:

function validateTime(value) {
return Date.parse(value) !== null;
}

有没有办法使用 DateJS 功能来解决这个问题?还有其他SO questions提供解决方案,但如果 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 的格式字符串中。

关于javascript - 使用 DateJS 仅解析时间字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4012702/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com