例如给定:
$quarter1 = 4;
$year1 = 2011;
$quarter2 = 3;
$year2 = 2012;
我需要知道第二组与第一组相比是未来的。
我确实认为这可以通过将季度附加到年份来完成。例如
$qy1 = 20114;
$qy2 = 20123;
// $qy1 < $qy2
但我确信这不是比较两者的可靠方法。有没有更好、更可靠的方法?
非常感谢
除了必须进行一些字符串连接并将类型转换回 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) { ... }
是的,我确实认为这是最好、最简单、最快的方法。
if($year1<$year2 || $year1==$year2 && $quarter1<$quarter2)
echo "Date1 is before Date2!";
else
echo "Date1 is NOT before Date2!";