【问题标题】:How to find month difference between today and other date from database?如何从数据库中找到今天和其他日期之间的月份差异?
【发布时间】:2013-01-23 01:19:13
【问题描述】:

我将今天的日期存储在变量中 $today=date("Y-m-d"); 和其他变量,它是从 mysql 数据库中获取的日期。 $date2=(row['date2']);

我尝试过使用 date_diff:

$diff=$today-$date2;

但是 $today 是字符串,我找不到解决方案。我尝试过 $today=newDateTime (日期("Y-m-d")); 并得到一个错误:Object Of Class DateTime could not be Converted To Int

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

有什么建议吗?

【问题讨论】:

标签: php mysql sql


【解决方案1】:

我猜你想要这个:

SELECT TIMESTAMPDIFF(MONTH, CURDATE(), DB_FIELD)

例子

SELECT TIMESTAMPDIFF(MONTH, CURDATE(), '2012-01-01')

返回 -12,因为该日期是 12 个月前

手册页:TIMESTAMPDIFF

【讨论】:

  • 谢谢你,dagon,你让我开心:)
【解决方案2】:

为什么不使用CURDATE()?查询应该是这样的

SELECT DATEDIFF(CURDATE(), date2)

【讨论】:

  • 这是我的第一个想法,但“月差”是另一个故事,因为它将返回天数
  • 我? “绿色”,但我怀疑 OP 有其他想法 :-)
  • 谢谢JW。 CURDATE() 是完美的解决方案。谢谢。
【解决方案3】:

试试这个。

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

【讨论】:

    猜你喜欢
    • 2013-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-10
    • 2013-09-11
    • 1970-01-01
    • 2023-02-02
    相关资源
    最近更新 更多