1

例如给定:

$quarter1 = 4;
$year1 = 2011;

$quarter2 = 3;
$year2 = 2012;

我需要知道第二组与第一组相比是未来的。

我确实认为这可以通过将季度附加到年份来完成。例如

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

但我确信这不是比较两者的可靠方法。有没有更好、更可靠的方法?

非常感谢

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 回答