我无法比较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; ='在代码执行后返回错误的结果。请帮忙
答案 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');