Php 来自数据库的日期以不同的形式返回

Php 来自数据库的日期以不同的形式返回,php,sql,date,mysqli,phpmyadmin,Php,Sql,Date,Mysqli,Phpmyadmin,我试图获取今天的日期,并将其与数据库中的日期进行比较,但数据库中的日期返回的形式与我从date函数中获取的日期不同,因此如果在if语句中对其进行比较,值总是会为false。有没有一种方法可以让我将它们进行比较,使其返回为真 $date = date('y-m-d'); //date from date function ---> 15/07/19 $dateFromDatabase; //date from database ---> 2015/07/19 if ($date =

我试图获取今天的日期,并将其与数据库中的日期进行比较,但数据库中的日期返回的形式与我从date函数中获取的日期不同,因此如果在if语句中对其进行比较,值总是会为false。有没有一种方法可以让我将它们进行比较,使其返回为真

$date =  date('y-m-d'); //date from date function ---> 15/07/19
$dateFromDatabase; //date from database ---> 2015/07/19

if ($date == $dateFromDatabase) {
echo "It's the same day.";
}
strotime

php中有一些很好的函数可以将人类可读的日期转换为时间戳

第一个神奇的函数叫做strotime(stringtotime):给它一个日期,你就会得到一个UNIX时间戳!让我们看一些例子:

echo strtotime('2008-04-12 13:24');
echo strtotime('12 april 2008 13:24');
echo strtotime('12.04.2008 13:24');
更强大的是,Strotime可以识别一些关键词:

echo strtotime('now');
echo strtotime('+4 days');
echo strtotime('+1 month');
echo strtotime('next monday');
echo strtotime('+2 weeks 3 days 4 hours 23 minutes');
strotime的第二个参数是时间戳,它的默认值是实际的时间戳(time())。因此,echo strottime(“+4天”)是相对于当前时间的。当然,你也可以给strotime你的mysql日期!(注意,您还可以使用mysql函数UNIX_TIMESTAMP,它使用了更多的资源)

要比较日期,现在只是一个细节:

// your first date coming from a mysql database (date fields) 
$dateA = '2008-03-01 13:34'; 
// your second date coming from a mysql database (date fields) 
$dateB = '2007-04-14 15:23'; 
if(strtotime($dateA) > strtotime($dateB)){ 
    // bla bla 
}
比子串好,不是吗

这只是另一个例子,不是相对于当前日期,而是相对于特定日期:

strtotime('23 hours ago', strtotime('2005-04-13 14:00'));
这意味着相对于第二个给定日期(必须是时间戳)的23小时前

用户手册没有提供支持的日期格式的完整说明。strotime('dd/mm/YYYY')不起作用,它只适用于mm/dd/YYYY格式

dd/mm/YYYY格式的日期,可以使用explode()函数将其转换为YYYY-mm-dd,但我认为有更好的解决方案

$date = '25/05/2010';
$date = str_replace('/', '-', $date);
echo date('Y-m-d', strtotime($date));

如果我做这样的事怎么办$日期='20'。$日期;函数期望得到一个包含英文日期格式的字符串,并尝试将该格式解析为Unix时间戳(自1970年1月1日00:00:00 UTC以来的秒数),