0

重複の可能性:
PHP で、「November」などの月の文字列が指定された場合、12 部分の switch ステートメントを使用せずに 11 を返すにはどうすればよいですか?

別の形式に変換し、最終的にそれらを翻訳する必要がある特定の形式の平日があります。実行時にこれを行う必要があります。つまり、日付が保存されている形式を変更することはできませんが、Web サイトの最終出力用に変換する必要があります。

もちろん、これを行うために 7 つの if ステートメントを作成することもできます。

if ($wkday == "Mon") { $wkday = "Monday"; }
if ($wkday == "Tue") { $wkday = "Tuesday"; }

...

しかし、入力値と出力値の両方を配列に入れ、それらを互いに比較して、見苦しいifステートメントの数を削減するなど、これを行うためのより適切な方法を見つけようとしています。この場合、可能な値は 7 つしかないため、それほど悪くはありませんが、正しく行い、将来のために学びたいと思います。:-) これを検索しようとしましたが、どの用語を使用すればよいかさえわかりません。ヒントをいただければ幸いです。

助けてくれてありがとう!

4

2 に答える 2

0

ここでは配列が役に立ちます。この場合、配列は Java のハッシュマップに似ています。

$wkday = "Thu";
$wkdayMapper = array(
  "Mon" => "Monday",
  "Tue" => "Tuesday",
  "Wed" => "Wednesday",
  "Thu" => "Thursday",
  "Fri" => "Friday",
  "Sat" => "Saturday",
  "Sun" => "Sunday"
);

echo $wkdayMapper[$wkday]; //Thursday

配列に関する PHP マニュアル リンク

于 2012-10-07T12:29:31.800 に答える
0

dateで使用strtotime:

$wkday = 'Thu';
echo date('l', strtotime($wkday)); // outputs 'Thursday'
于 2012-10-07T12:33:06.497 に答える