将datetime DAY翻译成其他语言的最佳方式

时间:2015-02-24 07:49:28

标签: php

我翻译时间" Mon -Fri"用我的母语。为此你可以选择不同的方式。有if case array等等。如果我选​​择的方式做错了,我现在更聪明了。 (if)?

PHP

//Translate days to Swedish
if($day == "Mon"){
  $day = "Mån";
}
if($day == "Tue"){
  $day = "Tis";
}
if($day == "Wed"){
  $day = "Ons";
}
if($day == "Thu"){
  $day = "Tor";
}
if($day == "Fri"){
  $day = "Fre";
}
if($day == "Sat"){
  $day = "Lör";
}
if($day == "Sun"){
  $day = "Sön";
}

2 个答案:

答案 0 :(得分:2)

您可以使用数组。

    $myDays = array("Mon"=>"Mån","Tue"=>"Tis","Wed"=>"Ons","Thu"=>"Tor","Fri"=>"Fre","Sat"=>"Lör","Sun"=>"Sön");

echo $myDays[date("D", strtotime('now'))];

答案 1 :(得分:0)

你的方法还可以。但是,您要比较$day变量的7倍,无论它是否先前匹配过。

您的代码的重构如下:

if($day == "Mon"){
  $day = "Mån";
}elseif($day == "Tue"){
  $day = "Tis";
}elseif($day == "Wed"){
  $day = "Ons";
}elseif($day == "Thu"){
  $day = "Tor";
}elseif($day == "Fri"){
  $day = "Fre";
}elseif($day == "Sat"){
  $day = "Lör";
}else{
  $day = "Sön";
}

这样,如果$day匹配,则可以避免执行其他比较。

或者你可以使用switch case,这样可以避免输入重复的代码:

$day = "Tue";

switch($day){
    case "Mon":
        $day = "Mån";
        break;
    case "Tue":
        $day = "Tis";
        break;
    case "Wed":
        $day = "Ons";
        break;
    case "Thu":
        $day = "Tor";
        break;
    case "Fri":
        $day = "Fre";
        break;
    case "Sat":
        $day = "Lör";
        break;
    case "Sun":
        $day = "Sön";
        break;
}
echo $day;

最好的方法是使用数组,这样可以避免执行条件语句(if elseif和case)

$days = array(
    "Mon" => "Mån",
    "Tue" => "Tis",
    "Wed" => "Ons",
    "Thu" => "Tor",
    "Fri" => "Fre",
    "Sat" => "Lör",
    "Sun" => "Sön"
    );

echo $days["Fri"];