更改php语言的月份和日期

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了更改php语言的月份和日期相关的知识,希望对你有一定的参考价值。

这是我的第一个问题所以请原谅我的任何技术错误。

我们正在为电影院创建一个WP网站。我们已经建立了一个日历轮播,我正在努力将从周五,周六,周日等转换成波兰语的日期和月份。这是代码:

 <?php    
                            $begin = new DateTime('today');
                            $end = new DateTime('+ 19 days');
                            $daterange = new DatePeriod($begin, new DateInterval('P1D'), $end);


                        foreach($daterange as $date){
                            echo '<div class="carousel-item">';
                            echo '<a href="#DAY'.$date->format("d").'" data-toggle="tab" class="dka-link-kal">';
                            echo '<div class="day-div" id="DD'.$date->format("d").'">';

                            echo '<div class="nazwa-dnia">';
                            echo $date->format("D");
                            echo '</div>';
                            echo '<div class="numer-dnia">';
                            echo $date->format("d");
                            echo '</div>';
                            echo '<div class="nazwa-miesiaca">';
                            echo $date->format("M");
                            echo '</div>';
                            echo '</div>';
                            echo '</div>';
                            echo '</a>';

                            }
                            ?>

我想我没有在实际服务器上安装语言环境。如果你能给我一个提示,我会很高兴的。谢谢。

答案

在经历了许多障碍之后,我使用IntlDateFormatter来解决问题

我的第一个测试是使用setlocale,但这结束了不希望的副作用。 IntlDateFormatter在ICU API之后有丰富的格式化选项

编辑:作为起点:

    $formatter = new IntlDateFormatter(
        Locale::acceptFromHttp(
            isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])
                ? $_SERVER['HTTP_ACCEPT_LANGUAGE']
                : 'de-DE'
        ),
        IntlDateFormatter::FULL,
        IntlDateFormatter::FULL,
        null,
        null,
        $format
    );

    echo $formatter->format($begin);

因为我在我的应用程序中使用了dateformatting,所以我写了一个小包装器,只显示dayDateString(DateTime $d) : string并在内部处理格式化程序生成。

另一答案

好的,我已经用数组想出了这个:

$dzien_tyg_pl2 = array('Mon' => 'Pon', 'Tue' => 'Wt', 'Wed' => 'Śr', 'Thu'=> 'Czw', 'Fri' => 'Pt', 'Sat' => 'Sb', 'Sun' => 'Nd'); 
$miesiac_pl2 = array(1 => 'Sty', 'Lut', 'Mar', 'Kwi', 'Maj', 'Cze', 'Lip', 'Sie', 'Wrze', 'Paź', 'Lis', 'Gru');

                        setlocale(LC_ALL, 'pl-PL');
                        foreach($daterange as $date){
                            echo '<div class="carousel-item">';
                            echo '<a href="#DAY'.$date->format("d").'" data-toggle="tab" class="dka-link-kal">';
                            echo '<div class="day-div" id="DD'.$date->format("d").'">';

                            echo '<div class="nazwa-dnia">';
                            echo $dzien_tyg_pl2[$date->format("D")];
                            echo '</div>';
                            echo '<div class="numer-dnia">';
                            echo $date->format("d");
                            echo '</div>';
                            echo '<div class="nazwa-miesiaca">';
                            echo $miesiac_pl2[$date->format("n")];
                            echo '</div>';
                            echo '</div>';
                            echo '</div>';
                            echo '</a>';

                            }

以上是关于更改php语言的月份和日期的主要内容,如果未能解决你的问题,请参考以下文章

在引导日期选择器更改月份事件不起作用

VBA - 更改日期语言

如何仅在月份、日期和年份中更改我的日期选择器显示

更改月份日历上的日期颜色

PHP 计算日期,月份和日期之间的差异

如何更改显示日期和时间的 x 轴以仅显示月份名称?