Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从数据库中查找今天和其他日期之间的月差?_Php_Mysql_Sql - Fatal编程技术网

Php 如何从数据库中查找今天和其他日期之间的月差?

Php 如何从数据库中查找今天和其他日期之间的月差?,php,mysql,sql,Php,Mysql,Sql,我将今天的日期存储在变量中 $today=日期(“Y-m-d”); 另一个变量是从mysql数据库中获取的日期。 $date2=(第['date2'行]) 我尝试过date_diff: $diff=$today-$date2; 但是今天的美元是字符串,我找不到解决方案。我已经试过了 $today=新日期时间(日期(“Y-m-d”); 并获取一个错误:类DateTime的对象无法转换为Int 应该提到的是,在我得到月份后,我需要将它们存储在一个变量中,并与其他变量相乘 有什么建议吗?为什么不使用

我将今天的日期存储在变量中 $today=日期(“Y-m-d”); 另一个变量是从mysql数据库中获取的日期。 $date2=(第['date2'行])

我尝试过date_diff:

$diff=$today-$date2;
但是今天的美元是字符串,我找不到解决方案。我已经试过了 $today=新日期时间(日期(“Y-m-d”); 并获取一个错误:类DateTime的对象无法转换为Int

应该提到的是,在我得到月份后,我需要将它们存储在一个变量中,并与其他变量相乘

有什么建议吗?

为什么不使用
CURDATE()
?查询应该如下所示

SELECT DATEDIFF(CURDATE(), date2)

我猜你想要这个:

SELECT TIMESTAMPDIFF(MONTH, CURDATE(), DB_FIELD)
范例

SELECT TIMESTAMPDIFF(MONTH, CURDATE(), '2012-01-01')
返回-12,因为该日期是12个月前

手册页:

试试这个

<?php
     $date1 = date(strtotime('2013-01-23'));
     $date2 = date(strtotime('2013-05-31'));
     $difference = $date2 - $date1;
     $months = floor($difference / 86400 / 30 );
     echo $months;
?>

“月差”你能举个例子吗?我可以根据你之后的价值想出几种方法。这里描述了另一种方法,这是我的第一个想法,但“月差”是另一个故事,因为它将返回daysme格林:“但我怀疑OP还有其他想法:-)谢谢你,JW。CURDATE()是完美的解决方案。谢谢。谢谢你,达贡,你让我开心:)