|
|
1
120
对于PHP>=5.3
DateTime::diff返回 DateInterval 对象 如果不使用PHP 5.3或更高版本运行,我想您必须使用unix时间戳:
但这并不十分精确(并非每个月都有30天)。 最后一件事:如果这些日期来自您的数据库,那么使用您的DBMS来完成这项工作,而不是PHP。 编辑: 如果不能使用DateTime::diff或RDBMS,则此代码应该更精确:
|
|
|
2
34
或者,如果需要程序样式:
更新 :添加了用于说明年份的代码位。 |
|
3
20
或者简单的计算可以得出:
准确,在任何情况下都有效。 |
|
|
4
14
在测试了大量的解决方案,将所有内容都放在单元测试中之后,我得出了以下结论:
例如,它将返回(来自单元测试的测试用例):
注意:由于它与天的关系是四舍五入的,所以即使是半个月也会四舍五入,如果在某些情况下使用它可能会导致问题。所以不要在这种情况下使用它,它会引起你的问题。 例如:
|
|
|
5
4
这是获取两个日期之间的月数的另一种方法:
|
|
6
3
我用这个:
|
|
|
7
1
使用DateTime,这将为您提供任意月数的更精确的解决方案:
你还需要处理剩下的日子
|
|
|
8
1
这是我在课堂上写的一个简单方法,用来计算两个给定日期所涉及的月数:
|
|
|
9
0
我用过这个,在任何情况下都能用
|
|
|
10
0
如果日期是mySQL查询结果集的一部分,那么使用TIMESTAMPDIFF函数进行日期计算就容易多了,您可以指定返回单位,例如。
|
|
|
11
0
SttoTimes不是很精确,它是一个近似计数,它没有考虑到月的实际日期。 最好把日期安排在每个月都有的日子。
|