我的主要目标是检查ID ==从1到50,如果是,所以我需要根据ID回显日期时间,例如,如果ID === 5 echo $ dtime ['5']和等等, 我已经制作了一个数组来增加每个ID的天数
$dtime = array(
1 => date('Y/m/d H:i:s', strtotime($rdate['r_date']. '+ 0 days')),
2 => date('Y/m/d H:i:s', strtotime($rdate['r_date']. '+ 1 days')),
3 => date('Y/m/d H:i:s', strtotime($rdate['r_date']. '+ 2 days')),
4 => date('Y/m/d H:i:s', strtotime($rdate['r_date']. '+ 3 days')),
48 => date('Y/m/d H:i:s', strtotime($rdate['r_date']. '+ 47 days')),
49 => date('Y/m/d H:i:s', strtotime($rdate['r_date']. '+ 48 days')),
50 => date('Y/m/d H:i:s', strtotime($rdate['r_date']. '+ 49 days')),
);
这是我的if / elseif语句
if ($next_id === 1):
echo $dtime['1'];
elseif ($next_id === 2):
echo $dtime['2'];
elseif ($next_id === 3):
echo $dtime['3'];
echo $dtime['48'];
elseif ($next_id === 49):
echo $dtime['49'];
elseif ($next_id === 50):
echo $dtime['50'];
endif;
一切都运行良好,但我相信没有所有这些线路,任何想法都有很短的方法来实现我的目标? 提前谢谢。
答案 0 :(得分:2)
你可以做到
echo date('Y/m/d H:i:s', strtotime($rdate['r_date']. sprintf('+ %d days', $next_id - 1)));
对$next_id
的有效值的约束留给读者练习。
答案 1 :(得分:1)
if(in_array($next_id, range(1, 50))) { //if value of next_id is valid (based on condition u applied)
echo date('Y/m/d H:i:s', strtotime($rdate['r_date']. '+'. ($next_id - 1).' days')),
}
答案 2 :(得分:0)
如果你的next_id和条件相同,你可以在没有if else
的情况下向数组添加键
echo $dtime[$next_id];
你也可以用我的输出进行测试,
请告诉我是否可以为您提供更多帮助。
答案 3 :(得分:0)
$dtime = date('Y/m/d H:i:s', strtotime($rdate['r_date']) + ($next_id-1)*(60*60*24) );
第一步是将你的日期$ rdate ['r_date']变成Unix时间戳。然后添加(60 * 60 * 24),这是一天中的秒数。最后,使用date()函数将其全部转换回日期时间格式。
答案 4 :(得分:0)
构建你的数组 -
$dtime=array();
for($i=0;$i<49;$i++){
$dtime[$i+1] = date('Y/m/d H:i:s', strtotime($rdate['r_date']. "+ $i days"));
}
获得你的价值
$next_id=##;
if (array_key_exists($next_id, $dtime)) {
echo $dtime[$next_id];
}