-1

在php中我想比较两个日期的格式m-d-Y

所以我尝试了以下代码

$strdte=trim($_REQUEST['stdate']);
$enddte=trim($_REQUEST['enddate']);


$today_time = $strdte;
$expire_time = $enddte;

if ($expire_time < $today_time) 
{
print '<script type="text/javascript">';print 'window.onload = function(){';
print 'alert("You cannot have end date before startdate")';
print '};';print '</script>';  
}

但问题是它有时有效,有时无效。谁能告诉我这个问题的原因是什么?

提前致谢。

4

2 回答 2

0

检查日期格式,如果它是像'04-03-2013'这样的字符串格式,则不会直接比较。您需要将其转换为 strtotime(time foramt) 这将为您提供第二个字符串,然后您可以进行比较。

strtotime($expire_time) < strtotime($today_time)
于 2013-04-03T08:49:09.540 回答
0

我会将您的日期转换为DateTime对象,然后使用日期的时间戳进行比较。与字符串进行日期比较不是一个好主意。这看起来类似于:

$start = DateTime($format,$_REQUEST['stdate']);
$end = DateTime($format,$_REQUEST['enddate']);

if ($end->getTimestamp() < $start->getTimestamp())
{
     print '<script type="text/javascript">';print 'window.onload = function(){';
     print 'alert("You cannot have end date before startdate")';
     print '};';print '</script>';  
}
于 2013-04-03T08:55:54.337 回答