用PHP计算大范围的日期差
我需要计算从1708年到今天的两个日期之间的十年数——我所能收集到的限制是PHP本机函数中的1970/1901 有人能提供建议吗 谢谢 你可以用。它是Zend框架的一部分,但是可以独立使用,您不需要安装整个框架就可以使用它。如果PHP中安装了用PHP计算大范围的日期差,php,date,datediff,Php,Date,Datediff,我需要计算从1708年到今天的两个日期之间的十年数——我所能收集到的限制是PHP本机函数中的1970/1901 有人能提供建议吗 谢谢 你可以用。它是Zend框架的一部分,但是可以独立使用,您不需要安装整个框架就可以使用它。如果PHP中安装了bcmath扩展,那么它可以处理1901年以后的日期。来自Zend_date的: 这是唯一可能的,因为Zend_日期不仅限于UNIX时间戳,也不限于整数值。BCMath扩展需要支持1901年12月13日星期五20:45:54 GMT到2038年1月19日星期
bcmath
扩展,那么它可以处理1901年以后的日期。来自Zend_date的:
这是唯一可能的,因为Zend_日期不仅限于UNIX时间戳,也不限于整数值。BCMath扩展需要支持1901年12月13日星期五20:45:54 GMT到2038年1月19日星期二03:14:07 GMT范围之外的超大日期。由于浮点数据类型和舍入的固有限制,可能会出现额外的微小数学错误,除非使用BCMath扩展
我喜欢推荐Zend组件,因为它们是经过精心整理的高质量代码。不过,还有其他解决方案,例如使用。我将编写一个自定义方法 PHP日期函数基于epoch(1969),因此不会有太多帮助 如果你只看年份,那就是简单的数学 较高年份-较早年份=年数 年/10=十年
如果你的意思是从1-10,11-20开始几十年,那么你可以做一些四舍五入。(向上舍入早期日期,向下舍入最接近的10。如果PHP>=5.3.0:
$before = new DateTime('1708-02-02');
$decades = $before->diff(new DateTime())->y / 10;
我一直坚持5.2:-(-但知道这一点太好了!不幸的是,它必须是日期准确的。不过谢谢你的反馈!