如何从用户提供的PHP日期格式字符串中提取并显示单独的日/月/年?

时间:2018-07-16 22:14:30

标签: php wordpress

我在WordPress中有一个自定义博客模块。允许用户在配置模块时指定所需的任何PHP日期格式。例如'j m Y'。

该模块在单独的行上输出日,月和年。当前默认使用'd F Y'格式。这样,2018年7月6日将显示如下:

06

7月

2018

<?php   
        // If we have chosen to show a date, get individual date components for style 4
        if ( 'on' === $show_date ) {
            $ci_post_date  = get_the_date( );
            $ci_post_day   = date('d', strtotime( $ci_post_date ) ); // 01 - 31 day format
            $ci_post_month = date('M', strtotime( $ci_post_date ) ); // 3 character month format (Jan - Dec)
            $ci_post_year  = date('Y', strtotime( $ci_post_date ) ); // 4 digit year format
        ?>
            <div class="ci-date post-meta">
                <span class="ci-day">  <?php echo $ci_post_day ?>  </span>
                <span class="ci-month"><?php echo $ci_post_month ?></span>
                <span class="ci-year"> <?php echo $ci_post_year ?> </span>
            </div>
        <?php
        }

上面的跨度通过CSS格式化以显示在单独的行上。这还允许用户为每个日期部分使用自己的自定义CSS。

还有一个变量$meta_date,它将保存用户提供的日期格式字符串。但是我不知道如何提取每个日期组件提供的格式,以便我可以正确地回显它。

我无法弄清楚如何根据用户提供的格式字符串来格式化这三行。我在所有PHP文档中以及在Stack中看到的所有示例均假定日期格式已知。如果可以,请进行硬编码。

我想使用用户提供的格式字符串在一行中显示月份中的某天。以此类推,每行的月份和年份都是如此。

因此,如果用户提供了上面的示例j m Y格式,则我需要能够这样显示日期:

6

07

2018

我不知道如何查看日期格式字符串的每月的哪一天部分,然后以这种格式显示(仅)每月的某天。

例如,如何提取用户提供的格式的日期部分,以便修改此行:

$ci_post_day   = date('d', strtotime( $ci_post_date ) ); // 01 - 31 day format

我的问题是,如果用户在当月的一天中提供了另一种格式,那么如何确定上一行中的'd'会使用什么值。

0 个答案:

没有答案