繁体   English   中英

MYSQL中的TIMESTAMPDIFF计算两个日期之间的月数

[英]TIMESTAMPDIFF in MYSQL to calculate # of months between 2 dates

我的服务器使用的是旧版本的PHP,因此很遗憾,我无法使用$ datetime1-> diff($ datetime2)方法。

我目前正在使用以下代码,但实际上并没有用:

$from = explode("-",date("Y-m-d",$recurring_invoices->start_date));
$to = explode("-",date("Y-m-d",$to_time));
$months = ($to[0]-$from[0])*12+$to[1]-$from[1];

它将以7月30日至6月1日为一个完整的月计算。 它只应将7月1日至6月1日的日期算作一个月。

我注意到有一个MYSQL TIMESTAMPDIFF函数,但我似乎也无法使它正常工作。

$query = "SELECT TIMESTAMPDIFF(MONTH,'$recurring_invoices->start_date','$from_time')";
print_r($this->queryResult($query));

要么

$query = "SELECT TIMESTAMPDIFF(MONTH, from_date, to_date) FROM agenda";
print_r($this->queryResult($query));

非常感谢您的帮助!

我认为这应该可行, 但是未经测试, 现在已经过测试和修复:

list($startYear, $startMonth, $startDay) = explode('-', date('Y-n-j', $recurring_invoices->start_date));
list($endYear, $endMonth, $endDay) = explode('-', date('Y-n-j', $to_time));

$months = 0;
$months += ($endYear-$startYear) * 12;
$months += $endMonth - $startMonth;
if ($startDay > $endDay) {
  $months -= 1;
}

echo $months;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM