PHP创建时间戳

PHP创建时间戳,php,timestamp,Php,Timestamp,我是php编程的初学者。我试图比较保存在数据库中的2种时间戳类型, 这是我的密码: $sdate = "{$_POST['sdatey']}-{$_POST['sdatem']}-{$_POST['sdated']} $stime"; $edate = "{$_POST['edatey']}-{$_POST['edatem']}-{$_POST['edated']} $etime"; $startdate = strtotime($sdate); $enddate = strtotime($ed

我是php编程的初学者。我试图比较保存在数据库中的2种时间戳类型, 这是我的密码:

$sdate = "{$_POST['sdatey']}-{$_POST['sdatem']}-{$_POST['sdated']} $stime";
$edate = "{$_POST['edatey']}-{$_POST['edatem']}-{$_POST['edated']} $etime";
$startdate = strtotime($sdate);
$enddate = strtotime($edate);
$diff = floor($enddate - $startdate);

if($diff > 0){
$sql = "INSERT INTO `leave` (TypeID, StatusID, StaffID, StartDate, EndDate, CreateDate) VALUES ('1','1', {$_SESSION['user']['ID']} , '$sdate', '$edate', '$date')";
header('Location:ApplyLeave-Step3.php');
}
else {
echo "wrong";       
}

我认为你应该这样做

$startdate = date('Y-m-d h:i:s',strtotime($sdate));
$enddate = date('Y-m-d h:i:s',strtotime($edate));
//I have changed the startdate and enddate because you want to insert it into DB
$diff = abs(strtotime($enddate ) - strtotime($startdate));

$sql = "INSERT INTO `leave` 
    (TypeID, StatusID, StaffID, StartDate, EndDate, CreateDate) 
    VALUES 
    ('1','1','".$_SESSION['user']['ID']."', '$startdate', '$enddate', '$date')"; 
    //$date: I cannot see it is anywhere initialized. 

你在哪里比较?什么是$date2$date1。问题是什么?if的结果总是正确的,它从不转到Else语句,$date2,$date1的值是多少?我现在编辑代码。我不确定第一行,创建时间戳的格式是否正确?我尝试了您的代码,但当我回显$diff的值时,请显示这个数字299199600!但仍然不会转到else语句,只有当两个日期时间完全相等时,才会转到else部分。我使用了
abs
bcoz你使用了
$diff>0
,所以只有一个条件,当它转到else时,它们都应该完全相等。但是当两个datetime都相等时,它也不会转到else语句。我需要检查enddate是否大于startdate。我该怎么做?