以小时为单位获取两个时间戳变量之间差异的代码
Code for getting difference between two timestamp variables in hours
我试图在我的数据库中使用我的 Duration 来自动获取代码中不同格式的两个时间戳(LeaveFrom 和 Leaveto)之间的差异。我有两个间隔开的 Post 变量,以便第一个以 sql 格式显示日期,另一个以 sql format.It 格式显示时间,以便它们都显示为时间戳Leaveto 和 LeaveFrom 在我的数据库中。我希望持续时间变量在与其他变量一起插入数据库时计算 $begindate 和 $enddate 之间的小时差。这可能吗?有人可以解释一下吗?
if(isset($_POST['LeaveRequest'])) { // checking that form is submitted
session_start(); //creating variables for form entries
$Enum = $_POST['Employeenumber'];
$fullname = $_POST['Leavename'];
$leavetype = $_POST['Leavetype'];
$begindate = $_POST['LeaveFrom'].' '.$_POST['BeginTime'];
$enddate = $_POST['Leaveto'].' '.$_POST['EndTime'];
$duration = (I dont know!!)
$unit = $_POST['Unit'];
$leavereason = $_POST['LeaveReason'];
$leavestatus = "Pending";
$supervisor = $_POST['Supervisor'];
$sql = $con->query("INSERT INTO Leave_details
(Employeenumber, Leavename, Leavetype, LeaveFrom, Leaveto,
Duration, Unitpick, LeaveReason, LeaveStatus, Supervisor)Values('{$Enum}',
'{$fullname}', '{$leavetype}', '{$begindate}', '{$enddate}' ,'{$duration}',
'{$unit}' , '{$leavereason}', '{$leavestatus}', '{$supervisor}')");
header('Location: Account.php');
您可以使用DateTime
(如果您使用日期格式 Y-m-d H:i:s
或类似格式)
$begindate = new DateTime($_POST['LeaveFrom'].' '.$_POST['BeginTime']);
$enddate = new DateTime($_POST['Leaveto'].' '.$_POST['EndTime']);
$diff = $begindate->diff($enddate);
print_r($diff);
输出:
DateInterval Object
(
[y] => 0
[m] => 0
[d] => 1
[h] => 0
[i] => 0
[s] => 0
[invert] => 1
[days] => 1
)
所以你可以使用:
$diff->h
希望对您有所帮助。
我试图在我的数据库中使用我的 Duration 来自动获取代码中不同格式的两个时间戳(LeaveFrom 和 Leaveto)之间的差异。我有两个间隔开的 Post 变量,以便第一个以 sql 格式显示日期,另一个以 sql format.It 格式显示时间,以便它们都显示为时间戳Leaveto 和 LeaveFrom 在我的数据库中。我希望持续时间变量在与其他变量一起插入数据库时计算 $begindate 和 $enddate 之间的小时差。这可能吗?有人可以解释一下吗?
if(isset($_POST['LeaveRequest'])) { // checking that form is submitted
session_start(); //creating variables for form entries
$Enum = $_POST['Employeenumber'];
$fullname = $_POST['Leavename'];
$leavetype = $_POST['Leavetype'];
$begindate = $_POST['LeaveFrom'].' '.$_POST['BeginTime'];
$enddate = $_POST['Leaveto'].' '.$_POST['EndTime'];
$duration = (I dont know!!)
$unit = $_POST['Unit'];
$leavereason = $_POST['LeaveReason'];
$leavestatus = "Pending";
$supervisor = $_POST['Supervisor'];
$sql = $con->query("INSERT INTO Leave_details
(Employeenumber, Leavename, Leavetype, LeaveFrom, Leaveto,
Duration, Unitpick, LeaveReason, LeaveStatus, Supervisor)Values('{$Enum}',
'{$fullname}', '{$leavetype}', '{$begindate}', '{$enddate}' ,'{$duration}',
'{$unit}' , '{$leavereason}', '{$leavestatus}', '{$supervisor}')");
header('Location: Account.php');
您可以使用DateTime
(如果您使用日期格式 Y-m-d H:i:s
或类似格式)
$begindate = new DateTime($_POST['LeaveFrom'].' '.$_POST['BeginTime']);
$enddate = new DateTime($_POST['Leaveto'].' '.$_POST['EndTime']);
$diff = $begindate->diff($enddate);
print_r($diff);
输出:
DateInterval Object
(
[y] => 0
[m] => 0
[d] => 1
[h] => 0
[i] => 0
[s] => 0
[invert] => 1
[days] => 1
)
所以你可以使用:
$diff->h
希望对您有所帮助。