所以我有一些活动(派对),每个人都有一个约会,当聚会的时候,我如何在当前日期查看?我需要找到所有已经通过的事件?
有任何想法吗?我甚至不知道从哪里开始,我将日期存储在mysql中,如下所示:dd/mm/yy
它是纯文本,因为我使用的是WP元数据集。
任何帮助将不胜感激。
答案 0 :(得分:2)
您应该使用DATETIME
格式存储日期并使用
SELECT date FROM dates WHERE DATEDIFF(date,NOW()) <= 0;
如果您坚持保留非常糟糕的数据库方案,则可以反而进行转换
SELECT STR_TO_DATE(date,'%d/%m/%Y') AS adate WHERE DATEDIFF(adate,NOW()) <= 0
答案 1 :(得分:1)
可能是strtotime的良好候选者,它可以将您的日期转换为时间戳,该时间戳可以与使用time()函数生成的当前时间戳进行比较。
答案 2 :(得分:1)
// your db date format is dd/mm/yy (European). the American is mm/dd/yy
$db_date_event = str_replace('/', '-', $db['date_event']);
// when - or . is used in strtotime European d-m-y format is assumed
$db_date_event = strtotime($db_date_event);
if (time() > $db_date_event)
{
echo 'this event is in the past';
}
// To compare at day level: (each day is represented in the 0:00 hrs (day's begin))
if (mktime(0, 0, 0, date('n'), date('j'), date('Y')) > $db_date_event)
{
echo 'this event is in the past';
}
答案 3 :(得分:0)
将日期转换为Unix时间戳:
list($d,$m,$y)=explode("/",$datestring);
$date=mktime(0,0,0,$m,$d,$y);
然后与今天比较:
$today=mktime(0,0,0,date("m"),date("d"),date("Y"));
使用<
,==
或>
:
if($date<$today)
{
echo "Date is in the past";
}