使用Wordpress主题,我必须将语言环境转换为法语。
$data_event = get_post_meta($post->ID, 'event_date_interval', true);
$time = strtotime($data_event);
$pretty_date_yy = date('Y', $time);
setlocale (LC_ALL, "fr_FR");
$translate_fr = strftime("%h", strtotime($data_event));
$pretty_date_M = htmlentities($translate_fr);
$pretty_date_d = date('d', $time);
这很好用,它显示了应有的一切(例如,现在我们在二月,所以它显示了FÉVR)
然而我的问题在于我希望它展示FÉV。而不是FÉVR。是否可以更改此缩写?
编辑:解决方案是创建一个数组并设置我想要的特定名称。它没有正确编码utf8_encode被添加。谢谢Phex!
$data_event = get_post_meta($post->ID, 'event_date_interval', true);
$time = strtotime($data_event);
setlocale (LC_ALL, "fr_FR");
$pretty_date_yy = date('Y', $time);
$pretty_date_d = date('d', $time);
$id = intval(strftime("%m", strtotime($data_event))) - 1;
$abr_map = array(
'Jan',
'Fév',
'Mar',
'Avr',
'Mai',
'Juin',
'Juil',
'Aout',
'Sept',
'Oct',
'Nov',
'Déc'
);
$translate_fr = htmlentities(utf8_decode($abr_map[$id]));
$pretty_date_M = $translate_fr;
答案 0 :(得分:2)
一种方法是使用PHP substr
函数,如下所示:
$translate_fr = substr(strftime("%h", strtotime($data_event)), 0, 3);
修改强> 如果不是所有月份都缩写为三个字符,则可以使用关联数组作为地图:
$abr_map = array(
'JANV' => 'Jan',
'FÉVR' => 'Fév',
'MARS' => 'Mar',
'AVRI' => 'Avr',
'MAI' => 'Mai',
'JUIN' => 'Juin',
'JUIL' => 'Juil',
'AOUT' => 'Aout',
'SEPT' => 'Sept',
'OCTO' => 'Oct',
'NOVE' => 'Nov',
'DÉCE' => 'Déc'
);
或者使用intval
和strftime
s %m
格式化程序为索引数组提供整数“键”:
$id = intval(strftime("%m", strtotime($data_event))) - 1;
$abr_map = array(
'Jan',
'Fév',
'Mar',
'Avr',
'Mai',
'Juin',
'Juil',
'Aout',
'Sept',
'Oct',
'Nov',
'Déc'
);
要在函数中使用地图,您可以使用
$translate_fr = htmlentities(utf8_decode($abr_map[$id]));
或者使用htmlentities
内置编码器:
$translate_fr = htmlentities($abr_map[$id], ENT_COMPAT, 'UTF-8');