0

可能重复:
在 PHP 中给定一个月份字符串,例如“November”,我如何在不使用 12 部分 switch 语句的情况下返回 11?

我有特定格式的工作日,我需要将其转换为另一种格式并最终翻译它们。我需要在运行时执行此操作,这意味着我无法更改存储日期的格式,但必须将它们转换为网站上的最终输出。

现在,我当然可以创建七个 if 语句来执行此操作,例如

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

...

但我试图找到一种更简洁的方法来做到这一点,比如将输入和输出值都放在数组中并将它们相互比较,以减少丑陋的 if 语句的数量。在这种情况下并没有那么糟糕,因为只有七个可能的值,但我想把它做好并为未来学习。:-) 我试图搜索这个,但甚至不知道使用什么术语。我会很感激任何提示。

谢谢你的帮助!

4

2 回答 2

0

数组在这里很有用,在这种情况下,它类似于 Java 中的 hashmap。

$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 回答