我有这段代码:
$curdate = '22-02-2011';
$mydate = '10-10-2011';
if($curdate > $mydate)
{
echo '<span class="status expired">Expired</span>';
}
这将回应过期但不应该因为$ mydate将来,因此小于$ curdate但是PHP正在查看前两个数字22和10而不是整个字符串。我该如何解决这个问题?
由于
答案 0 :(得分:58)
首先尝试将它们转换为时间戳,然后比较两个转换后的值:
$curdate=strtotime('22-02-2011');
$mydate=strtotime('10-10-2011');
if($curdate > $mydate)
{
echo '<span class="status expired">Expired</span>';
}
这将它们转换为自1970年1月1日以来的秒数,因此您的比较应该有效。
答案 1 :(得分:6)
问题是你当前的变量是字符串,而不是时间变量。
试试这个:
$curdate = strtotime('22-02-2011');
$mydate = strtotime('10-10-2011');
答案 2 :(得分:4)
$row_date = strtotime($the_date);
$today = strtotime(date('Y-m-d'));
if($row_date >= $today){
-----
}
答案 3 :(得分:1)
使用PHP日期/时间类将这些字符串表示转换为可以使用getTimestamp()比较UNIX时间直接比较的内容。
如果您确定所有日期都采用这种格式,您可以将它们串起来切成YYYY-MM-DD,然后字符串比较就能正常运行。
答案 4 :(得分:1)
if(strtotime($curdate) > strtotime($mydate))
{
...
}
答案 5 :(得分:1)
$currentDate = date('Y-m-d');
$currentDate = date('Y-m-d', strtotime($currentDate));
$startDate = date('Y-m-d', strtotime("01/09/2019"));
$endDate = date('Y-m-d', strtotime("01/10/2022"));
if (($currentDate >= $startDate) && ($currentDate <= $endDate)) {
echo "Current date is between two dates";
} else {
echo "Current date is not between two dates";
}
答案 6 :(得分:-3)
非常简单
$curdate = '2011-02-22';
$mydate = '2011-10-10';
if($curdate > $mydate)
{
echo '<span class="status expired">Expired</span>';
}