Php 获取按月份分组的两个日期之间的当月总天数
我有一个酒店房间的预订系统,有时会有一个月后开始,另一个月结束的预订。例如,2019年4月22日至2019年5月7日 我需要知道四月份房间被预订了多少天 不知道如何减少下个月的重叠天数 因此,如果我有这些预订:Php 获取按月份分组的两个日期之间的当月总天数,php,mysql,Php,Mysql,我有一个酒店房间的预订系统,有时会有一个月后开始,另一个月结束的预订。例如,2019年4月22日至2019年5月7日 我需要知道四月份房间被预订了多少天 不知道如何减少下个月的重叠天数 因此,如果我有这些预订: 07/Apr/2019 to 12/Apr/2019 22/Apr/2019 to 07/May/2019 29/May/2019 to 03/June/2019 它应该给我: 2019年4月:13天 2019年5月:10天 2019年6月:3天 我试着使用DATEDIFF和SUM但是
07/Apr/2019 to 12/Apr/2019
22/Apr/2019 to 07/May/2019
29/May/2019 to 03/June/2019
它应该给我:
2019年4月:13天
2019年5月:10天
2019年6月:3天
我试着使用DATEDIFF
和SUM
但是它也添加了五月日期
$sql = "SELECT
id, SUM(DATEDIFF(booking_to, transaction_date)) + 1 AS occup,
COALESCE(COUNT(id), 0) AS `transactions`,
COALESCE(SUM(revenue), 0) AS `revenue`
FROM transactions
WHERE property_id = $pvid
AND MONTH(transaction_date) = $tranmonth
AND YEAR(transaction_date) = $tranyear
group by property_id";
目前它给我20天,这是不正确的
是否有可能只计算4月份的预订天数?您可能需要的是当月的最后一天,以及之后的diff
SELECT LAST_DAY(NOW());
编辑:
您可能需要的是一个月的最后一天,然后再diff
SELECT LAST_DAY(NOW());
编辑:
谢谢你的回复,现在的问题是,从下个月开始也要数日。我需要它来计算每月的天数。上面的方法计算从今天到月末的天数。将其更改为对您有意义的内容
select now()as now,timestampdiff(日期,'2019-05-22 15:20:12',最后一天('2019-05-22 15:20:12')作为diff代码>无论如何谢谢,这并没有解决我的问题。我在这里找到了一个解决方案,他展示了如何做到这一点,并获得了正确的天数。谢谢你的回复,现在的问题是,从下个月开始也要数到几天。我需要它来计算每月的天数。上面的方法计算从今天到月末的天数。将其更改为对您有意义的内容select now()as now,timestampdiff(日期,'2019-05-22 15:20:12',最后一天('2019-05-22 15:20:12')作为diff代码>无论如何谢谢,这并没有解决我的问题。我在这里找到了一个解决方案,他展示了如何做到这一点,并获得了正确的天数。谢谢