在几行代码中增加日期时间和天数

时间:2013-07-06 06:11:58

标签: php

我的主要目标是检查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;

一切都运行良好,但我相信没有所有这些线路,任何想法都有很短的方法来实现我的目标? 提前谢谢。

5 个答案:

答案 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];
}