2 回答
TA贡献1799条经验 获得超9个赞
直接比较时间戳更简单 你不需要非常复杂的逻辑
$current_time = (new DateTime('now'))->getTimestamp();
if ($current_time < strtotime('01-04-2019')) {
echo "discount quarter 1";
} else if ($current_time < strtotime('01-07-2019')) {
echo "discount quarter 2";
} else if ($current_time < strtotime('01-10-2019')){
echo "discount quarter 3";
} else {
echo "discount quarter 4";
}
TA贡献1803条经验 获得超3个赞
正如所指出的,您正在比较 dmY 格式的字符串,这会产生意想不到的结果。相反,您最好只比较时间戳本身。
此代码还简化了if... elseif...结构,因为您可以假设它是 > 2 季度(例如),那么您不需要检查日期是否小于。我也已将其更改为,<=以便检查宿舍本身(您必须决定是否要包含日期)...
$current_time = strtotime("now");
$quarter1 = strtotime('01-01-2019');
$quarter2 = strtotime('01-04-2019');
$quarter3 = strtotime('01-07-2019');
$quarter4 = strtotime('01-10-2019');
if ( $current_time >= $quarter1 ) {
if ( $current_time <= $quarter2 ){
// quarter 1
echo "discount quarter 1";
}
elseif ( $current_time <= $quarter3 ){
// quarter 2
echo "discount quarter 2";
}
elseif ( $current_time <= $quarter4){
// quarter 3
echo "discount quarter 3";
}
else {
// quarter 4
echo "discount quarter 4";
}
}
- 2 回答
- 0 关注
- 159 浏览
添加回答
举报