34

在谷歌浏览器中,如果我将类型输入的值设置为datetime-local包含秒的时间,其中秒值为 0,Chrome 决定不在输入上显示秒值,这意味着用户根本无法设置秒。

例如,如果我将值设置为,2013-10-24T20:36:01那么 Chrome 将显示一个输入,用户可以将日、月、年、小时、分钟和秒更改为他们想要的任何值(包括 0)。如果我将值设置为,2013-10-24T20:36:00那么秒部分就会消失。如果没有传入秒值,我可以理解它不会显示,但我明确将它们设置为 0,所以我会假设它会显示它们。

这是一个问题的原因是因为我正在从数据库中读取时间,如果它们中的任何一个被设置为 0 秒,用户就无法在不使用开发工具破解的情况下更改时间!

我错过了什么吗?

谢谢!

4

2 回答 2

73

添加 step 属性将解决您的问题。

<input type=datetime-local value="2013-10-24T20:36:00" step="1">

step 属性的默认值为 60(一分钟)。

于 2013-10-22T01:03:47.367 回答
0

我知道这很旧,但我做了一个非常简单的解决方法,我的问题是验证,所以它不直接适合,但可能是一个跳板

        function dateMachRegex(date) {
            const regex = /^(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2})$/g;
            if (date.match(regex)) {
                return true;
            } else if ((date+":00").match(regex)) {
                return true;
            }
            return false;
        }
于 2022-02-15T22:18:32.473 回答