我的Wordpress模板有4个季节。每个季节都有开始和结束日期。
这是我当前的日期:
$currentDate = date('d-m') . '-' . date('Y');
$currentDate = date('d-m-Y', strtotime($currentDate)); //output 16-05-19
第1季开始和结束日期的示例:
$season_1_start = get_sub_field('start_date','option');
$season_1_start = date('d-m-Y', strtotime($season_1_start));
$season_1_end = get_sub_field('end_date','option');
$season_1_end = date('d-m-Y', strtotime($season_1_end));
季节日期的输出也是'd-m-Y'。
如何检查$currentdate
是否在$season_1_start
和$season_1_end
之间
所以:
if (($currentDate >= $season_1_start) && ($currentDate <= $season_1_end)){
echo "season 1";
}
if (($currentDate >= $season_2_start) && ($currentDate <= $season_2_end)){
echo "season 2";
}
if (($currentDate >= $season_3_start) && ($currentDate <= $season_3_end)){
echo "season 3";
}
if (($currentDate >= $season_4_start) && ($currentDate <= $season_4_end)){
echo "season 4";
}
但是我的输出是season 1season 2season 3season 4
因此,似乎每个if语句都是正确的。
我已经检查了季节日期是否正确,并且没有发现任何错误。
今天的结果应该是season 2
答案 0 :(得分:0)
我不太熟悉WordPress,但是您似乎可以使用纯PHP轻松解决该问题。
您可以使用DateTime类与今天的当前日期进行比较。由于您的格式不是标准格式,因此我们可以使用DateTime::createFromFormat()
。这将根据您提供的格式创建DateTime对象-在您的情况下为d/m
。由于未指定年份,因此使用当前年份。
您可能需要将条件调整为>=
或<=
,具体取决于您定义范围的日期。
$today = new DateTime;
$season_1_start = DateTime::createFromFormat("d/m", get_sub_field('start_date','option'));
$season_1_end = DateTime::createFromFormat("d/m", get_sub_field('end_date','option'));
if ($today > $season_1_start && $today < $season_1_end) {
// Season 1
}
然后在其他季节做同样的事情。