-2

私の主な目標は、ID == 1 から 50 までかどうかを確認することです。そうであれば、ID に基づいて日時をエコーする必要があります。たとえば、ID === 5 の場合は $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;

この方法ですべてが正常に機能していますが、これらすべての行がなくても目標を達成するための短い方法があると思います。何かアイデアはありますか? 前もって感謝します。

4

5 に答える 5

2

あなたはただすることができます

echo date('Y/m/d H:i:s', strtotime($rdate['r_date']. sprintf('+ %d days', $next_id - 1)));

の有効な値への制約$next_idは、読者の演習として残されています。

于 2013-07-06T06:14:11.913 に答える
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')),
}
于 2013-07-06T06:18:56.283 に答える
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];
}
于 2013-07-06T06:22:07.267 に答える
0

if elsenext_id と条件が同じでなくても、配列にキーを追加できます

echo $dtime[$next_id];

また、私の出力でテストすることもできます。

もっとお手伝いできることがあれば教えてください。

于 2013-07-06T06:16:17.173 に答える
0
$dtime = date('Y/m/d H:i:s', strtotime($rdate['r_date']) + ($next_id-1)*(60*60*24) );

最初のステップは、日付 $rdate['r_date'] を Unix タイムスタンプに変換することです。次に、1 日の秒数である (60*60*24) を追加します。最後に、date() 関数を使用して、すべてを日時形式に変換します。

于 2013-07-06T06:18:32.483 に答える