1

例:

$quarter1 = 4;
$year1 = 2011;

$quarter2 = 3;
$year2 = 2012;

2 番目のセットは 1 番目のセットに比べて未来であることを知っておく必要があります。

これは、文字通り年に四半期を追加することで実行できると思いました。例えば

$qy1 = 20114;
$qy2 = 20123;
// $qy1 < $qy2

しかし、これは2つを比較するための信頼できる方法ではないと確信しています。より良い、より信頼できる方法はありますか?

どうもありがとう

4

3 に答える 3

2

いくつかの文字列の連結とintへの型キャストを行う必要があることを除いて、メソッドに問題はありません。ただし、値を整数に戻すことに失敗し、文字列の長さが異なる年を比較している場合は、失敗する可能性があります。例:

$date1 = '9994';  // year 999, q4
$date2 = '10011'; // year 1001, q1

文字列9994は、文字列10011よりも大きく比較されます。

純粋に代替手段として、これも同様に機能し、物事を純粋に数値に保ちます。

$date1 = $year1 + (($quarter1 - 1) / 4);
$date2 = $year2 + (($quarter2 - 1) / 4);
if ($date1 < $date2) { ... }
于 2012-08-15T15:28:15.843 に答える
0

はい、これが最善で、最も簡単で、最も迅速な方法だと思います。

于 2012-08-15T15:25:53.957 に答える
-1
if($year1<$year2 || $year1==$year2 && $quarter1<$quarter2)
    echo "Date1 is before Date2!";
else
    echo "Date1 is NOT before Date2!";
于 2012-08-15T15:26:10.097 に答える