我想將月份名稱轉換為具有不同語言的數(shù)字格式。我已經(jīng)編寫了一段代碼,該代碼在我的本地主機上運行,但在實時服務器上無法運行,它返回錯誤值。還有幾個月它在Dezembro工作并且它不工作,outubro它不工作。我該如何解決這個問題?你能幫我解決這個問題嗎?$visit_date = "7 Dezembro, 2019"; $split_date = explode(" ", $visit_date); $visit_day = sprintf("%02d", $split_date[0]); $visit_month = $split_date[1]; if (substr($visit_month, -1) == ',') { $visit_month = substr($visit_month, 0, -1); $visit_year = $split_date[2]; } else { $visit_year = $split_date[3]; } var_dump($visit_month); $visit_month = month_to_number($visit_month, 'pt_PT');var_dump($visit_month);// convert visit date month full name to month number for all languagesfunction month_to_number($month, $locale_set= 'pt_PT' ){ $month = mb_convert_case($month, MB_CASE_LOWER, 'UTF-8'); $locale = setlocale(LC_TIME, '0'); setlocale(LC_TIME, $locale_set.'.UTF-8'); $month_number = FALSE; for ($i = 1; $i <= 12; $i++) { $time_month = mktime(0, 0, 0, $i, 1, 1970); $short_month = date('M', $time_month); $short_month_lc = strftime('%b', $time_month); if (stripos($month, $short_month) === 0 OR stripos($month, $short_month_lc) === 0) { $month_number = sprintf("%02d", $i); break; } } setlocale(LC_TIME, $locale); // return locale back return $month_number;}
1 回答
智慧大石
TA貢獻1946條經(jīng)驗 獲得超3個贊
如果您可以集成外部類dt試試這個:
$visit_date = "7 Dezembro, 2019";
dt::setDefaultLanguage('pt');
$dt = dt::create($visit_date);
echo $dt->format('Y-m-d');//2019-12-07
在內(nèi)部,班級在設置語言時會為每個月創(chuàng)建一個翻譯表。IntlDateFormatter類用于此目的。
注意: IntlDateFormatter 類獨立于服務器的本地設置工作。
- 1 回答
- 0 關注
- 136 瀏覽
添加回答
舉報
0/150
提交
取消
