Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.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中的时间处理_Php_Mysql - Fatal编程技术网

Php/Mysql中的时间处理

Php/Mysql中的时间处理,php,mysql,Php,Mysql,我很困惑。例如,我正在添加一条记录,该记录的时间也应该填写,然后我用类似于下午6:30的格式填写了时间文本框 那么如何将这些数据存储到mysql数据库中呢?我应该使用什么数据类型?因为有时间、日期时间和时间戳数据类型。我应该使用哪些PHP函数。 我想要实现的是以H:MM am/pm(例如6:30 pm)格式获取用户输入的时间,以正确的方式将其存储在数据库中,并以输入的格式显示或检索该数据 谁能帮助我理解如何使用Php在mysql中存储和检索时间。请给我举个例子 我知道网络上有很多资源,但我只希望

我很困惑。例如,我正在添加一条记录,该记录的时间也应该填写,然后我用类似于下午6:30的格式填写了时间文本框

那么如何将这些数据存储到mysql数据库中呢?我应该使用什么数据类型?因为有时间、日期时间和时间戳数据类型。我应该使用哪些PHP函数。

我想要实现的是以H:MM am/pm(例如6:30 pm)格式获取用户输入的时间,以正确的方式将其存储在数据库中,并以输入的格式显示或检索该数据

谁能帮助我理解如何使用Php在mysql中存储和检索时间。请给我举个例子


我知道网络上有很多资源,但我只希望像我这样的编程新手能得到直接而清晰的答案。

这一切都取决于你的应用程序(你想要一天中的时间,还是绝对时间?你想要做算术?等等)

一个简单的解决方案可以是:

使用和功能:

$timestamp = strtotime("6:30 pm");
$timestring = strftime("%I:%M %P", $timestamp);

$timestamp
是epoch之后的秒数,您可以将其作为INT存储在数据库中。

您可以使用timestamp将时间存储在MySQL数据库中

时间戳:

<?php
    $time = strtotime($yourTime); //yourTime is the time from your input box.
?>

时间戳到时间:

<?php
    $time = date('g:i a', $yourTime); //yourTime is the time from the database.
?>

有关更多信息,请参阅:和

编辑:
您可以在MySQL数据库中将时间戳值保存为INT(11)。

如果将时间设置为
6:30 PM
作为用户输入,则可以使用将其转换为时间戳,然后将其格式化以存储在数据库中

使用MySQL
TIME
数据类型,该数据类型要求时间格式为HH:MM:SS(24小时)

例如:

$dbFormat = date('H:i:s', strtotime('6:30 PM'));
产生:

18:30:00

这已准备好插入数据库。当您从数据库中检索它时,您可以使用函数让MySQL将其格式化为原始格式

SELECT DATE_FORMAT(mytime, '%l:%i %p') FROM mytable
产生:

下午6:30


您应该在mysql中使用类型time

时间以以下格式存储:HH:MM:SS

对于php转换

插入:

$time=strtotime('6:30 pm');
$data_bd=date("H:i:s",$time);
//And then insert into mysql field
摘录:

//Extract the data from mysql
$time=strtotime('18:30:00');
$data_print=date("g:i a",$time);
如果要查看流程,请执行以下操作:


有关更多信息:


您可以尝试以下方法:

$time = '6:30pm';
$newTime = strftime('%H:%M:%S',strtotime($time));
现在您应该得到一个有效的mysql时间

通常,将数据以正确的格式存储到mysql数据库是最好的方法。如果这里只有时间数据,我建议使用该列的时间格式。datetime和timestamp只有在具有完整日期和时间部分(如2012-12-05 09:54:32,或时间戳1354697672)时才应使用

要加载时间数据并将其重新格式化为00:00am/pm格式,您可以尝试:

$time = '18:30:00';
$newTime = strftime('%I:%M %p',strtotime($time));

我希望这将对您有所帮助。

使用格式为(YYYY-MM-DD HH:MM:SS)的MySQL时间戳。您需要以24小时格式保存时间。如果您只需将其保存为0000-00-00 18:30:00

然后,当您检索时间时,只需使用date('h:ia',$mysql\u timestamp)将其格式化为下午6:30


希望这有帮助。

将要存储的时间标准化为ISO8601()。有一些有用的JavaScript库(例如dojo)。如果要在数据库中存储时间,请使用
time
数据类型。@DipeshParmar这是非常糟糕的建议。数据库应使用可用的数据类型。如果不仔细考虑,您以后会遇到问题。我应用了您的示例
$dbFormat=date('H:I:s',strotime($timeinput))
用于将时间插入数据库,我使用它输出:
$time=date('g:ia',strottime($timeinput))一切顺利!你能给我解释一下百分号的作用吗?百分号通知strftime以下字符将以某种方式翻译,而不是逐字显示。