我正在尝试将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']
。
任何想法的人?
答案 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");
}