计算日期之间的月数

Tat*_*nen 3 php datetime

您如何计算两个任意日期之间的月数?鉴于即使只有一天是一个月,它也被视为整整一个月.

例子:

  • 2010-01-01 - 2010-03-31 =三个月
  • 2010-06-15 - 2010-09-01 =四个月

等等.我想只是将时间戳的差异除以2592000(一个月内的平均秒数),但这似乎很容易出错并容易出错.而且我想尽可能快地保持它(需要快速运行数千次),所以我猜使用strtotime也不是最佳的?

tho*_*ter 7

如果我正确地阅读你的问题,你会想要在1月31日和2月1日返回"2",因为它跨越1月和2月,即使它们只相隔1天.

你可以解决(伪代码):

monthno1 = (date1_year * 12) + date1_month;
monthno2 = (date2_year * 12) + date2_month;

return (monthno2 - monthno1) + 1;
Run Code Online (Sandbox Code Playgroud)

这假设第二个日期是更晚的日期.