0
正在使用的strtotime功能來找到這樣兩個給定日期之間的差值:PHP:和的strtotime以後的日期2038年1月19日
$diff_in_mill_seconds = strtotime($ToDate) - strtotime($FromDate);
$difference_in_years = round($diff_in_mill_seconds/(365*60*60*24),1);
當$ TODATE超出了2038年1月19日該腳本將失敗。
PHP官方文件說:
時間戳的有效範圍一般爲週五,1901年12月13日20時45分54秒UTC到星期二,2038年1月19日3時14分07秒UTC
PHP文檔也說:
使用此功能的數學運算是不可取的。最好在PHP 5.3及更高版本中使用DateTime :: add()和DateTime :: sub(),或者在PHP 5.2中使用DateTime :: modify()。
我不能使用DateTime :: add()和DateTime :: sub()作爲服務器上的PHP版本是5.2。
那麼,我該如何計算使用php 5.2的年份中兩個日期(2038-01-19之後)之間的差異?
[This answer](http://stackoverflow.com/a/3266088/862594)證實了我的直覺 - UNIX時間戳正在翻轉,因爲你在32位機器上。切換到64位機器,您可以將大於2038的日期表示爲UNIX時間戳。 – nickb 2013-04-10 03:12:53
PHP 5.2 *和*不是64位機器?對不起,沒有什麼可以幫助你。你只需要更新版本的* something *。 – deceze 2013-04-10 03:13:41
@Sabari'DateTime :: add'特別在5.3中引入。 – deceze 2013-04-10 03:14:20