如何使用setlocale将日期更改为西班牙语格式?

时间:2019-03-02 16:50:53

标签: php date setlocale

我试图将月份名称更改为西班牙语日期,但是不起作用。我不知道是否需要在首页添加脚本。这是我的代码:

<tbody>
    <?php
    setlocale(LC_ALL,"es_ES");
    for($i = 1; $i <=12; $i++):
      $dt = DateTime::createFromFormat('!m', $i);
      ?>
      <tr>
        <td><?= $dt->format("F");?></td>
        <td></td>
        <td></td>
      </tr>
    <?php endfor;?>
</tbody>

3 个答案:

答案 0 :(得分:0)

尝试一下:

<?php
setlocale(LC_TIME, 'es_ES', 'Spanish_Spain', 'Spanish');
$date = date('F j, Y');
echo strftime('%d %B %Y',strtotime($date));

答案 1 :(得分:0)

首先,您必须确保要使用的语言环境在系统上可用。 然后,您必须使用使用语言环境的函数。 在我(ubuntu桌面)上,我不得不

.scroll {
    bottom:0px;
    left:100%;
    width: 100%;    
    position:absolute;
    opacity:0;
    overflow-x:hidden;  
    top: -20px;
}

.scroll ul {
    height: fit-content;
    position: absolute;
    top:30px;
    width:85%;
    left:15%;
    opacity:1;
    bottom:30px;
    right:5%;
    font-family:'Amatic SC', 'Open Sans', Helvetica, sans-serif;
    text-align:center;
    font-size: 20px;
    line-height: 30px;
}

.scroll li {
    display:inline-block;
    float:left;
    margin-bottom: 65px;
    width:40%;
    margin-right: 10%;  
}
.category {
    position: relative;
    height: fit-content;
}

通过sudo locale-gen es_ES sudo update-locale 函数获得非英语的内容。

strftime

给出以下输出:

setlocale(LC_TIME,"es_ES");
for($i = 1; $i <=12; $i++){
      $dt = DateTime::createFromFormat('!m', $i);
      $time = mktime(0,0,0,$i);
    echo $dt->format("F") . " " . strftime('%B', $time) . " " . date('F', $time) . "\n";
}

答案 2 :(得分:0)

试试这个代码(详细解释见我的评论):

polly.server.get(`<route-pattern>`).passthrough();