1708年から今日までの2つの日付の間の数十年を計算する必要があります-私が収集できる限りの制限は、PHPネイティブ関数内の1970/1901です。
誰かアドバイスできますか?
ありがとう!
PHP> = 5.3.0を使用している場合:
$before = new DateTime('1708-02-02');
$decades = $before->diff(new DateTime())->y / 10;
Zend_Dateを使用できます。これは Zend Framework の一部ですが、スタンドアロンで使用できます。使用するためにフレームワーク全体をインストールする必要はありません。bcmath
拡張機能が PHP にインストールされている場合は、1901 年以降の日付でも機能します。Zend_date の操作理論から:
Zend_Date は UNIX タイムスタンプや整数値に限定されていないため、これは可能でした。1901 年 12 月 13 日金曜日 20:45:54 GMT から 2038 年 1 月 19 日火曜日 03:14:07 GMT の範囲外の非常に大きな日付をサポートするには、BCMath 拡張機能が必要です。BCMath 拡張機能を使用しない限り、float データ型と丸めの固有の制限により、追加の小さな数学エラーが発生する可能性があります。
Zend コンポーネントはよく手入れされた高品質のコードであるため、お勧めします。ただし、これには他の解決策があります。たとえば、mySQL 日付関数を使用します。
カスタムメソッドを書きます。
PHP の日付関数はエポック (1969) に基づいているため、あまり役に立ちません。
簡単な計算である年を見るだけなら
より高い年 - 以前の年 = 年 年 / 10 = 十年。
偶数の 01-10、11-20 から数十年を意味する場合は、丸めを行うことができます。(早い日付を切り上げ、後の日付を最も近い 10 に切り捨てます。