我试图获得一个简单的时间函数,以使用PHP来计算患者的等待时间.成功将到达时间作为TIMESTAMP输入到患者表中;这是这段代码;
// validate arrival time
$date_time=date('Y-m-d H:i:sa');
clock time
date_default_timezone_set('Europe/London');
$the_time1 = date('G:ia');
等待时间为(时钟时间-到达时间)
但是,这在我的代码中不起作用!
$conn = mysqli_connect("localhost","root","") or die ("No connection");
mysqli_select_db($conn, "a&e") or die('Could not select database.');
$query = "SELECT PatientID, Forename, Surname, Gender, Illness, Priority, Arrival_Time FROM Patient";
$result = mysqli_query($conn, $query) or die("Invalid query");
date_default_timezone_set('Europe/London');
$the_time1 = date('G:ia');
$date_time=date('Y-m-d H:i:sa');
echo Waiting_time($the_time1, $date_time);
function waiting_time ( $the_time1, $date_time) {
$time_diff = ( $the_time1, $date_time); {
$days = floor( $time_diff / 86400 ); // 60 * 60 * 24 = number of seconds in a day
$time_diff -= $days * 86400;
$hours = floor( $time_diff / 3600 ); // 60 * 60 = number of seconds in a hour
$time_diff -= $hours * 3600;
$mins = floor( $time_diff / 60 ); // 60 = number of seconds in a minute
return( $days . ' days, ' . $hours . ' hours, ' . $mins . ' minutes' );
}
echo "
PatientID | Forename | Surname | Gender | Illness | Priority | Waiting Time |
---|
}
echo "
" . $row[0] . "" . $row[1] . "" . $row[2] . "" . $row[3] . "" . $row[4] . "" . $row[5] . "" . $waitTime . "";}
echo "
";mysqli_close($conn);
?>
编辑;
我现在将代码更改为此.
$conn = mysqli_connect("localhost","root","") or die ("No connection");
mysqli_select_db($conn, "a&e") or die('Could not select database.');
$query = "SELECT PatientID, Forename, Surname, Gender, Illness, Priority, Arrival_Time as Waiting_Time FROM Patient";
$result = mysqli_query($conn, $query) or die("Invalid query");
date_default_timezone_set('Europe/London');
echo "
PatientID | Forename | Surname | Gender | Illness | Priority | Waiting_Time |
---|
while ($row = $result->fetch_object()){
echo "
" . $row->PatientID . "" . $row->Forename . "" . $row->Surname . "" . $row->Gender . "" . $row->Illness . "" . $row->Priority . "" . $row->Waiting_Time . "";}
echo "
";mysqli_close($conn);
?>
现在正在显示数据,如下所示;
PatientID Forename Surname Gender Illness Priority Waiting_Time
249 Sara Kearns F Immediate high 2013-03-20 22:18:01
我需要等待时间以小时为单位显示,例如一点15分23秒
解决方法:
因为您已经在数据库中到达时间,所以在sql查询中执行此操作
$query = "SELECT PatientID, Forename, Surname, Gender, Illness, Priority, Arrival_Time, TIMEDIFF(Arrival_time,NOW()) as Waiting_Time FROM Patient";
同样在上面的示例中,您唯一一次将现在时间与现在时间进行比较,而从未与数据库中的Arrival_Time进行实际比较
示例代码的修改版本
$conn = mysqli_connect("localhost","root","") or die ("No connection");
mysqli_select_db($conn, "a&e") or die('Could not select database.');
$query = "SELECT PatientID, Forename, Surname, Gender, Illness, Priority, Arrival_Time , TIMEDIFF(Arrival_time,NOW()) as Waiting_Time FROM Patient";
$result = mysqli_query($conn, $query) or die("Invalid query");
date_default_timezone_set('Europe/London');
echo "
PatientID | Forename | Surname | Gender | Illness | Priority | Waiting Time |
---|
while ($row = $result->fetch_object()){
echo "
" . $row[0] . "" . $row[1] . "" . $row[2] . "" . $row[3] . "" . $row[4] . "" . $row[5] . "" . $row[7] . "";}
echo "
";mysqli_close($conn);
?>
标签:php,timestamp,datetime
来源: https://codeday.me/bug/20191009/1882758.html