日期PhP本地化

时间:2017-01-24 13:42:07

标签: php wordpress date

我正在尝试编写一个函数来显示我的日期,用法语分隔全名。

我的post_meta(wordpress)返回此信息:

array (size=3)
'date' => string '09/02/2017' (length=10)
'hours' => string '00' (length=2)
'minutes' => string '00' (length=2)

它是法语格式的d / m / y,我已经尝试strftime()使用参数%B进行区域设置完整月份显示,但我不了解此功能,它需要完整的格式日期。

例如,当我输入

$month = 02;
echo strftime("%B", $month);

函数返回总是“Janvier”(1月英文)..

我有任何想法可以解决这个问题,并显示星期几(字母)/天(数字)和月份(字母)?

感谢。

3 个答案:

答案 0 :(得分:1)

strftime()需要一个时间戳而不仅仅是一个数字。

echo strftime("%B", time()+(60*60*24*10));  // now + 10 days to get into February

或者

$day = 1;
$month = 2;
$year = 2017;

$time = mktime(0, 0, 1, $month, $day, $year);
echo strftime("%B", $time);

答案 1 :(得分:0)

试试这个:

<?php
$var = array (
    'date' => '09/02/2017',
    'hours' => '00',
    'minutes' => '00'
);

$date = strtotime(substr($var['date'], 3, 2).'/'.substr($var['date'], 0, 2).'/'.substr($var['date'], 6, 4));

echo date('l', $date); //day of the week in letters format. It produces: Thursday
echo '<br/>';
echo date('d', $date); //day number format. It produces: 09
echo '<br/>';
echo date('F', $date); //month letters format. It produces: February

答案 2 :(得分:0)

感谢您的帮助!

我用第一种方法编写了我的函数并且它正在工作:)

我发布该功能,如果这可以帮助将来的任何人!

function wb_get_event_date ( $format )
{
    global $post;
    setlocale (LC_TIME, 'French');
    $event_date = get_post_meta($post->ID, 'wb_agenda_date', true);
    $event_date_explode = explode("/", $event_date['date']);
    $tim = mktime(0, 0, 1, $event_date_explode[1], $event_date_explode[0], $event_date_explode[2]);

    switch ( $format ) {
        case 'day_full':
            echo utf8_encode(strftime("%A", $tim));
            break;
        case 'day':
            echo strftime("%d", $tim);
            break;
        case 'month':
            echo utf8_encode(strftime("%B", $tim));
            break;
        case 'year':
            echo strftime("%Y", $tim);
            break;
    }
}