php - 将月份名称转换为不同语言的数字?
问题描述
我想将月份名称转换为具有不同语言的数字格式。我已经编写了一段代码,该代码在我的本地主机上运行,但在实时服务器上无法运行,它返回错误值。还有几个月它在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 languages
function 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;
}
解决方案
推荐阅读
- c# - Disregard Changes in input fields/dropdown using ASP.NET C#
- angular - Angular Gamesparks 问题
- r - 在R中的图表上设置不同的线条颜色
- fabricjs - 如何增加/减少只有一个角的圆角半径?
- android-studio - Android 资源编译失败 - 资源“attr/aspectRatio”的重复值与配置“”
- excel - 如何在excel vba中添加段落或中断
- arrays - reactjs将导入的JSON对象导入数组列表
- javascript - 如何将 json 数据存储到数组列表中
- javascript - Excel VBA 如何在 url 中制作代码以进行数据抓取
- android - 如何解决“无法解决依赖关系”错误?