PHP:日期不是当前日期
问题描述:
大我有这样的代码:PHP:日期不是当前日期
$curdate = '22-02-2011';
$mydate = '10-10-2011';
if($curdate > $mydate)
{
echo '<span class="status expired">Expired</span>';
}
这将回声过期,但不应该因为$指明MyDate是未来,因此比$ CURDATE小,但PHP是看着JUST前两个数字22和10而不是整个字符串。我怎样才能解决这个问题?
感谢
答
试试先将它们都转换到时间戳,然后比较两个转换值:
$curdate=strtotime('22-02-2011');
$mydate=strtotime('10-10-2011');
if($curdate > $mydate)
{
echo '<span class="status expired">Expired</span>';
}
这将它们转换成秒数自1970年1月1日,所以你的比较应该工作。
答
问题是你的当前变量是字符串,而不是时间变量。
尝试了这一点:
$curdate = strtotime('22-02-2011');
$mydate = strtotime('10-10-2011');
答
使用PHP的日期/时间类,这些字符串表示转换成东西,你可以直接比较使用getTimestamp()的UNIX时间进行比较。
如果您确定所有的日期都是这种格式,那么您可以将它们分成YYYY-MM-DD字符串,然后字符串比较将正确运行。
答
if(strtotime($curdate) > strtotime($mydate))
{
...
}
答
这很简单
$curdate = '2011-02-22';
$mydate = '2011-10-10';
if($curdate > $mydate)
{
echo '<span class="status expired">Expired</span>';
}
答
$row_date = strtotime($the_date);
$today = strtotime(date('Y-m-d'));
if($row_date >= $today){
-----
}
谢谢:)伟大的作品。 – Cameron 2011-02-22 18:42:52
@Cameron你不觉得它有点过分,以错误的格式定义变量,然后将其转换为另一个?为什么不以适当的格式来定义它? – 2011-02-22 19:07:37
如果我想知道当前日期少于1个月,那么使用mydate如何?怎么做? – Eli 2016-07-01 15:18:22