0

假设时间格式(不是时区数据,只是表示 12 小时制时间的纯文本字符串),解析该数据的最佳方法是什么(下面的示例)?

我觉得这是一个非常简单的问题,但是我对此进行了很多思考,并且无法找出一个万无一失的过程来从许多时间“格式”中的任何一种中解析hourminute值。

我正在使用一个允许输入时间(例如,预订时间)的简单表单,但是除了允许任何一个人希望将可用的数据放入其中的时间格式。以下是一些可以输入的时间示例:

1 P        // hours would be 13, minutes would be 0
3:15 P.M.  // hours would be 15, minutes would be 15
4 P.M      // hours would be 16, minutes would be 0
8:30 a     // hours would be 8, minutes would be 30
10:45 aM.  // hours would be 10, minutes would be 45
12:00 Pm   // hours would be 12, minutes would be 0

这些只是一些例子。如果我不在正确的主题中,请随意修复标签 - 但是我正在使用 Google Apps 脚本/Javascript 来完成此操作。

我考虑过构建几个正则表达式字符串来查找某些格式(我肯定会花一些时间来写,因为我以前从未写过)。

我还考虑寻找一个 ':' 字符和一个 'a'/'A' 字符或 'p'/'P' 来确定是否需要添加 +12 小时。在检索到这种信息之后,可以通过截断“pm”类型的部分来解决问题,然后split(":")得到正确的数字。

我觉得第一种方法更稳定,但第二种解决方案可能更容易。我不确定是否有更好的方法,这是我的 n00b 程序员可以想到的两种方法。

4

1 回答 1

1

我很高兴听到你有一个你认为会帮助你的答案。但在你编写太多代码之前,请重新审视你所做的这个断言:

...除了纯文本之外,没有其他方法可以使表单字段(Google 表单,有限的可定制性)

以下是使用表单 UI 定义问题以呈现日期和时间选择器的方法。

屏幕截图:表单日期/时间选择器

接收您的表单响应的电子表格最终将带有一个 Date 对象 - 根本不需要弄乱字符串。

于 2013-06-24T19:56:37.707 回答