解析字符串时间格式(非时区)

时间:2013-06-24 15:41:01

标签: javascript parsing time google-apps-script google-form

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

我觉得这是一个非常简单的问题,但我已经解决了很多问题,并且无法找出一个简单的进程来解析hour和{来自时间“格式”中的任何一个的{1}}值。

我正在使用一个允许输入时间的简单表单(例如,预订时间),但是没有办法使表单字段(Google表单,有限的可自定义性)除了纯文本以外的任何内容允许任何时间格式的人希望在那里放置一个可行的数据来处理。以下是一些可以输入的时间示例:

minute

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

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

我还考虑过寻找一个':'字符和'a'/'A'字符或'p'/'P'来确定是否需要添加+12小时。在检索到那种信息之后,可以通过截断'p.m。'类型的部分来解决问题,然后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 来获得正确的数字。

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

1 个答案:

答案 0 :(得分:1)

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

  

...除了纯文本之外,没有办法让表单字段(Google表单,有限的可自定义性)

以下是如何定义问题以显示日期&时间选择器,使用表单UI。

Screen shot: form date/time picker

接收表单回复的电子表格最终会显示一个Date对象 - 根本不需要乱用字符串。