这是我的PHP函数,用于将月份名称从英语更改为其他语言,此功能正常运行。
function _ld($sqldate, $lang){
if(!$sqldate) $sqldate=date("Y-m-d");
$phpdate = strtotime( $sqldate );
$phpdate = date( 'd M Y', $phpdate );
$eng = array("Jan", "Feb", "Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
$kan = array("ಜನವರಿ", "ಫೆಬ್ರವರಿ", "ಮಾರ್ಚ್","ಏಪ್ರಿಲ್", "ಮೇ", "ಜೂನ್","ಜುಲೈ", "ಆಗಸ್ಟ್", "ಸೆಪ್ಟೆಂಬರ್","ಅಕ್ಟೋಬರ್", "ನವಂಬರ್", "ಡಿಸೆಂಬರ್");
$hin = array("जनवरी", "फ़रवरी", "मार्च","अप्रैल","मई","जून","जुलाई","आगस्त","सितम्बर","अकतूबर","नवेम्बर","दिसम्बर");
switch ($lang) {
case "kan" :
$to = $kan;
break;
case "eng" :
$to = $eng;
break;
case "hin" :
$to = $hin;
break;
default :
$to = $kan;
}
return str_replace($eng, $to, $phpdate);
}
echo _ld();
现在我想通过向array (key=>values)
添加语言来简化此功能。这可能吗?如果是,怎么样?
请帮帮我。
答案 0 :(得分:1)
这是我的尝试:https://repl.it/GbwN/4
所以我花了一段时间才正确地格式化数组(大量的逐个拷贝粘贴)。
我们将月份存储在CREATE TABLE JagBank.AccountType ( typeID INT(4) NOT NULL , type VARCHAR(15) NULL , interestRate DOUBLE NULL , PRIMARY KEY (typeID)) ENGINE = InnoDB;
,并使用它来遍历我们的$month
键。
删除了$months
数组,因为它感觉多余
$eng
现在取代str_replace
而不是string
。
请注意Array
适用于$lang = 0
而kan
适用于$lang = 1
。
hin
您可以为每个月的语言添加键,如:
“Jan”=> array(“kan”=>“ಜನವರಿ”,“hin”=>“जनवरी”)
并将function _ld($sqldate, $lang){
if(!$sqldate) $sqldate=date("Y-m-d");
$phpdate = strtotime( $sqldate );
$month = date( 'M', $phpdate );
$phpdate = date( 'd M Y', $phpdate );
$months = array(
"Jan" => array("ಜನವರಿ", "जनवरी"),
"Feb" => array("ಫೆಬ್ರವರಿ", "फ़रवरी"),
"Mar" => array("ಮಾರ್ಚ್", "मार्च"),
"Apr" => array("ಏಪ್ರಿಲ್", "अप्रैल"),
"May" => array("ಮೇ", "मई"),
"Jun" => array("ಜೂನ್", "जून"),
"Jul" => array("ಜುಲೈ", "जुलाई"),
"Aug" => array("ಆಗಸ್ಟ್", "आगस्त"),
"Sep" => array("ಸೆಪ್ಟೆಂಬರ್", "सितम्बर"),
"Oct" => array("ಅಕ್ಟೋಬರ್", "अकतूबर"),
"Nov" => array("ನವಂಬರ್", "नवेम्बर"),
"Dec" => array("ಡಿಸೆಂಬರ್", "दिसम्बर")
);
switch ($lang) {
case "eng" :
return $phpdate;
break;
case "kan" :
$lang = 0;
break;
case "hin" :
$lang = 1;
break;
default :
$lang = 0;
}
return str_replace($month, $months[$month][$lang], $phpdate);
}
echo _ld("2017-02-29","hin");
更改为$lang = 0
以指定我们想要获取的数组项
我避免这样做,因为我不喜欢在我的代码中反复重复同样的事情。