用PHP计算大范围的日期差异
我需要计算从 1708 年到今天的两个日期之间的几十年数 - 据我所知,PHP 本机函数中的限制是 1970/1901。
有人可以建议吗?
谢谢!
I need to calculate the number of decades between 2 dates possible spanning form 1708 until today - the limitations are as far as I can gather are 1970/1901 within PHP native functions.
Can anyone advise?
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果您的 PHP >= 5.3.0:
If you have PHP >= 5.3.0:
您可以使用 Zend_Date。它是 Zend Framework 的一部分,但可以独立使用,您无需安装整个框架即可使用它。如果您的 PHP 中安装了
bcmath
扩展,它可以处理 1901 年之后的日期。来自 Zend_date 的操作理论:我喜欢推荐 Zend 组件,因为它们是精心修饰的高质量代码。不过,还有其他解决方案,例如使用 mySQL 日期函数。
You could use Zend_Date. It's part of the Zend Framework but can be used standalone, you don't need to install the whole framework to use it. It can work with dates beyond 1901 if the
bcmath
extension is installed into your PHP. From Zend_date's theory of operation:I like to recommend Zend components because they are well-groomed, high-quality code. There are other solutions to this, though, for example using the mySQL date functions.
我会写一个自定义方法。
PHP 日期函数基于纪元 ( 1969 ),因此不会有太多帮助。
如果你只看年份,那就是简单的数学
高年级 - 早年=年份
年/10 = 几十年。
如果您指的是偶数 01-10、11-20 的几十年,那么您可以进行一些四舍五入。 (较早的日期向上舍入,较晚的日期向下舍入到最接近的 10。
I would write a custom method.
PHP date functions are based on the epoch ( 1969 ) so there won't be much help there.
If your just looking at years that is simple math
higher year - earlier year = years
years / 10 = decades.
If you mean decades from an even 01-10, 11-20 then you could do some rounding. (round early date up, later date down to nearest 10.