我正在尝试编写一个函数来显示我的日期,用法语分隔全名。
我的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月英文)..
我有任何想法可以解决这个问题,并显示星期几(字母)/天(数字)和月份(字母)?
感谢。
答案 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;
}
}