Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysql时间的HTML表单输入_Php_Mysql_Codeigniter - Fatal编程技术网

Php mysql时间的HTML表单输入

Php mysql时间的HTML表单输入,php,mysql,codeigniter,Php,Mysql,Codeigniter,我有一个添加/编辑表单要更新并添加到数据库中,我不确定输入时间类型(HH:MM:SS)的最佳方式是什么。我应该为HH、MM、SS使用多个html文本输入吗? 如果是,是否有一个函数为数据库输入准备字符串 基本上,我想输入的是完成一项特定任务所需的时、分、秒数 有人能给我指一下正确的方向吗 我正在使用Codeigniter(PHP)设计一个网站 谢谢 让我继续澄清一下需要做些什么。。。 用户需要输入特定于体育运动的数据,尤其是运动员所玩的分钟和秒数。我想把它简化为几分钟。也许这种方式输入只是一件事

我有一个添加/编辑表单要更新并添加到数据库中,我不确定输入时间类型(HH:MM:SS)的最佳方式是什么。我应该为HH、MM、SS使用多个html文本输入吗? 如果是,是否有一个函数为数据库输入准备字符串

基本上,我想输入的是完成一项特定任务所需的时、分、秒数

有人能给我指一下正确的方向吗

我正在使用Codeigniter(PHP)设计一个网站

谢谢

让我继续澄清一下需要做些什么。。。 用户需要输入特定于体育运动的数据,尤其是运动员所玩的分钟和秒数。我想把它简化为几分钟。也许这种方式输入只是一件事。我的问题是,用什么方法将“分钟数”转换成正确的MYSQL时间格式

只要使用now()函数,如果数据库是 MYSQL是您想要保存当前 时间

e、 g:

UPDATE tbl SET timemodified = NOW()
并确保timemodified具有 “时间”的类型

哦,我错过了那一点。嗯,也许你需要在你的DB中有一个开始时间,然后在他/她完成他/她的任务之后。您必须在DB上查询开始时间减去结束时间(您的当前时间),然后结果将是他/她执行任务的时间

只要使用now()函数,如果数据库是 MYSQL是您想要保存当前 时间

e、 g:

UPDATE tbl SET timemodified = NOW()
并确保timemodified具有 “时间”的类型


哦,我错过了那一点。嗯,也许你需要在你的DB中有一个开始时间,然后在他/她完成他/她的任务之后。您必须在DB上查询开始时间减去结束时间(您当前的时间),然后结果将是他/她执行任务的时间

我编写了一个助手,在我正在开发的应用程序中执行类似的操作。Mine通过调用内置的form_下拉列表助手生成三个下拉列表,hh、mm和am/pm。一旦我从下拉列表中获得数据,我将其转换为24小时格式,然后我将字符串连接成MySQL的正确格式。因为它是一个助手,所以我可以使用
form\u time()
从任何视图调用它。如果你认为看一下会有帮助的话,我可以把它贴在这里


Dana

我写了一个助手,在我正在开发的应用程序中做类似的事情。Mine通过调用内置的form_下拉列表助手生成三个下拉列表,hh、mm和am/pm。一旦我从下拉列表中获得数据,我将其转换为24小时格式,然后我将字符串连接成MySQL的正确格式。因为它是一个助手,所以我可以使用
form\u time()
从任何视图调用它。如果你认为看一下会有帮助的话,我可以把它贴在这里


Dana

这将检查2个数字,然后是a:“然后是2个数字,然后是a:”,最后是2个数字:

$cleanTime = preg_match( '/(\d\d)\:(\d\d)\:(\d\d)/', $_POST[ 'NAME_OF_TIME_INPUT' ] );
if( !$cleanTime ){ /* ... error ... */ }
不要害怕所有的斜杠,哈哈(我刚开始使用regexps的时候)


上的
NAME
属性的内容替换时间输入的
NAME\u,然后检查2个数字,然后是a:“然后是2个数字,然后是a:”,最后再次检查2个数字:

$cleanTime = preg_match( '/(\d\d)\:(\d\d)\:(\d\d)/', $_POST[ 'NAME_OF_TIME_INPUT' ] );
if( !$cleanTime ){ /* ... error ... */ }
不要害怕所有的斜杠,哈哈(我刚开始使用regexps的时候)


上的
NAME
属性的内容替换
NAME\u OF_TIME\u INPUT
。这是(web)UI设计永恒的难题之一,如何在不让用户发疯的情况下输入时间。适合您的具体案例的内容只有您自己可以决定,因为它取决于您需要的确切格式/环境以及您的目标受众

作为一般准则,我要说:

  • 不要创建需要特定格式的自由格式文本字段,例如“输入时间(HH:MM:SS)”,因为它太容易搞乱,如果不进行验证,将拒绝用户输入或搞乱时间
  • 尽量避免使用[0-23][0-59][0-59]下拉列表,因为它们可能会很麻烦(单击,滚动,单击,单击,滚动,单击,单击,单击)
如果像公共网站一样,易用性是一个优先考虑的问题,那么Javascript增强的时间选择器可能是一个好主意。尽量不要使用任何没有人会想到的花哨的东西(比如在时钟上拖动指针)

一个自由格式的文本字段可能是最好的主意。用户只需输入“下午3点”、“16:34”或“午夜”。您可能需要提供示例来帮助用户入门,否则他们可能会感到迷茫。您可以在自己的计算机上运行
strotime
,但您可能需要填写空格并进行大量验证

如果你的听众非常专注于键盘,并且可以快速按顺序点击,那么三个短文本字段可能是一个好主意

至于为SQL格式化它,不管您从用户那里接收到时间输入,您都应该将它组装成UNIX时间戳,并为SQL格式化该时间戳:

date('Y-m-d H:i:s', $timestamp);

这是(web)UI设计永恒的难题之一,如何在不让用户发疯的情况下输入时间。适合您的具体案例的内容只有您自己可以决定,因为它取决于您需要的确切格式/环境以及您的目标受众

作为一般准则,我要说:

  • 不要创建需要特定格式的自由格式文本字段,例如“输入时间(HH:MM:SS)”,因为它太容易搞乱,如果不进行验证,将拒绝用户输入或搞乱时间
  • 尽量避免使用[0-23][0-59][0-59]下拉列表,因为它们可能会很麻烦(单击,滚动,单击,单击,滚动,单击,单击,单击)
如果像公共网站一样,易用性是一个优先考虑的问题,那么Javascript增强的时间选择器可能是一个好主意。尽量不要使用任何没有人会想到的花哨的东西(比如在时钟上拖动指针)

一个自由格式的文本字段可能是最好的主意。用户只需输入“下午3点”、“16:34”或“午夜”。你可能需要证明
function convertHtmlTime($date,$time){
        $newDate = date($date);
        $newTime = date($time);
        $datetime = new DateTime($newDate.$newTime);
        return date_format($datetime, 'YmdHis');
}
$date="2007-02-16";
$time="23:59";
echo convertHtmlTime($date,$time);