首页 > 解决方案 > 如何确保用户输入的格式为“H:MM AM/PM, DURATION MIN/HR?

问题描述

我有一个用户输入,要求用户以这种格式输入时间。

<input type="text" name="time" placeholder="Type in this format: H:MM AM/PM, DURATION MIN/HR">

表单提交后,我需要一个 PHP 脚本来检查用户是否遵循这种格式H:MM AM/PM, DURATION MINS/HRS。以下是用户输入时必须遵循的数据格式示例:

E.g.
8:00 AM, 1 HR
3:00 PM, 20 MIN
11:00 AM, 15 MIN

如何确保用户使用 PHP 遵循这种格式?

标签: phphtml

解决方案


这将很难完全验证。也许可以使用正则表达式来做到这一点,但这会很复杂。另外,我认为这对于尝试键入它的人来说不是用户友好的。

从用户体验的角度来看,必须输入框要好得多——一个输入时间,一个输入持续时间,然后让用户输入数字。验证要容易得多,如果您使用 24 小时时间,那么 AM/PM 是多余的,MIN 也是如此。

这样的事情会让你的用户更快乐:

Time: <input type="time" name="time"/>
Duration: <input type="number" name="duration"/> MIN

PS你没有说为什么你需要这种特定的、深奥的格式,但大概如果你以后确实需要它来进行某些显示,你可以很容易地从用户给出的输入中重新创建它。

您还可以更轻松地验证用户在 PHP 中输​​入的值(当它们到达您的服务器时),以检查它们是有效的时间和数字。您可以使用此处的答案之一来验证时间字符串。您可以使用ctype_digit函数检查持续时间是否为有效整数。

我假设您不打算将它像那样存储在您的数据库或任何东西中,因为它在过滤、排序或以其他方式查询方面效率非常低。


推荐阅读