【发布时间】:2018-07-02 04:37:37
【问题描述】:
我有一些包含冰岛月份名称的日期变量,例如:
$date = '27. júní 2018 04:53';
我想用英文月份名称替换这些月份名称:
$icelandic = array('Janúar', 'Febrúar', 'Mars', 'Apríl', 'Maí', 'Júní', 'Júlí', 'Ágúst', 'September', 'Oktober', 'Nóvember', 'Desember');
或关联数组:
$icelandic = array('Janúar' => '', 'Febrúar' => '', 'Mars' => '', 'Apríl' => '', 'Maí' => '', 'Júní' => '', 'Júlí' => '', 'Ágúst' => '', 'September' => '', 'Oktober' => '', 'Nóvember' => '', 'Desember' => '');
正如您所见或知道的,月份名称不是整个单词,但可能只有 3 或 4 个字符。
所以如果数组中这些值的一部分存在于 date 变量中,则将其替换为英文月份。
被替换的英文月份可能是整个世界,因为 new DateTime() 会处理它。
所以上面的变量可以是:
$date = '27. june 2018 04:53';
或者:
$date = '27. jun 2018 04:53';
更新:
我尝试过的:
$icelandic = array('Janúar', 'Febrúar', 'Mars', 'Apríl', 'Maí', 'Júní', 'Júlí', 'Ágúst', 'September', 'Oktober', 'Nóvember', 'Desember');
$english = array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
for($i=0; $i < count($icelandic); $i++) {
$date = str_replace($icelandic[$i], $english[$i], $date);
}
或者先使用strpos()进行检查:
if(strpos($icelandic[$i], $date)){
$date = str_replace($icelandic[$i], $english[$i], $date);
}
我不知道日期形式的英语和冰岛语月份的缩写形式。
【问题讨论】:
-
我想看看你到目前为止尝试了什么......
-
您知道每个月名称的每个版本都需要替换吗?
-
@mickmackusa,我知道这不是免费的编码服务,我在我的问题中提供了一些关于我的想法的信息。也许我可以做点什么,但这可能不是我最好的方法,而且需要很多代码和执行时间。这将在真实网站上执行。
-
@mickmackusa,你也有权删除你的答案,我没看到,不过还是谢谢。
-
我分享了我认为可以完成的方式,使用数组,两个数组或一个数组,关键是英语,值是冰岛语。但是,如果我尝试的与您的答案大相径庭呢?
标签: php arrays regex date datetime