比较php中有问题的日期

时间:2013-12-09 21:37:45

标签: php jquery mysql date

我正在尝试将2个日期与通常的代码进行比较。

$date1 = date("d/m/Y",strtotime($row['ad_date']));

$date = $_GET['date'];

 if($date1 > strtotime($date)){
   echo ("Yes");
 }else{
   echo ("No");
 }

row['ad_date']具有“Y-m-d”格式,$_GET['date']具有“d-m-Y”格式。

仅当$_GET['date'] MONTH 低于$row['date'] DAY 时,PHP才会打印YES

当我回复两者时,在格式的所有更改之后,格式似乎相同:
13/12/2013 (date1) - 01/12/2013(date)

$_GET['date']来自ui.js jQuery的日历和来自mysql的$row['date']

任何想法的人?

2 个答案:

答案 0 :(得分:4)

您正在进行直接字符串比较,您应该使用strtotime将日期字符串解析为纪元时间,以便您可以将它们与数字比较进行比较。

$date1 = strtotime($row['ad_date']);
$date = strtotime($_GET['date']);

echo "{$row['ad_date']} -> {$date1}<br>";
echo "{$_GET['date']} -> {$date}<br>";

if($date1 > $date){
    echo ("Yes");
}else{
    echo ("No");
}

答案 1 :(得分:2)

使用DateTime对象可以轻松实现,因为它们具有可比性:

$date1 = new DateTime($row['ad_date']);
$date2 = DateTime::CreateFromFormat("d-m-Y",  $_GET['date']);
if($date1 > $date2){
  echo ("Yes");
}else{
  echo ("No");
}