php中的日期比较无法完成

时间:2015-05-16 05:35:16

标签: php

我无法比较php中的日期。我的代码如下所示:

$sqldt="select to_char(sysdate-2,'dd-mon-yyyy') from dual";
$stmtdt = $obj->executeQuery($sqldt);
$rowdt = oci_fetch_array($stmtdt,OCI_BOTH);

$startdate = date('d/m/y', strtotime($rowdt[0]));
$enddate=date('d/m/y');
$workdate=date('d/m/y', strtotime($wdate)); //here wdate is our selected date which is passed from previous page.

echo "start date=".($startdate); //showing correctly

echo "end date=".($enddate);//showing correctly

echo "work date=".($workdate);//showing correctly


$S_WORKDATE=strtotime($workdate);
$S_STARTDATE=strtotime($startdate);
$S_ENDDATE=strtotime($enddate);

现在我比较像这样的日期

if($S_WORKDATE<$S_ENDDATE)
{
    echo "worked";
}
else
{
    echo "failed";
}

无论比较如何'&lt;'或 '&GT;'或'&lt; ='或'&gt; ='在代码执行后返回错误的结果。请帮忙

3 个答案:

答案 0 :(得分:0)

请查看我在下面给出的代码,

$startdate = new date('d/m/y');
$enddate = new date('d/m/y');
$startdate ->diff($enddate );

if($startdate > $enddate )
echo "startdate  is bigger";
else
echo "enddate  is bigger";

被修改的 请查看此链接以获取更多信息:http://php.net/manual/en/datetime.diff.php

我希望这会对你有所帮助。

答案 1 :(得分:0)

/ 无法使用dd / mm / yyyy格式的strtotime()函数。

因此,您可以将 / 更改为 -

$startdate = date('d-m-y', strtotime($rowdt[0]));
$enddate=date('d-m-y');
$workdate=date('d-m-y', strtotime($wdate)); 

或者你可以直接比较

if($workdate<$enddate)
{
    echo "worked";
}
else
{
    echo "failed";
}

答案 2 :(得分:0)

  

通过查看,可以消除m / d / y或d-m-y格式的日期   各个组件之间的分隔符:如果分隔符是a   斜线(/),然后是美国m / d / y;而如果   separator是短划线( - )或点(。),然后是欧洲d-m-y格式   假定。

所以基本上,你的月和日都在转换。

你想用......

$enddate=date('m/d/y');