[英]TIMESTAMPDIFF - How to use it in PHP/MySQL to calculate difference between date values
[英]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.