我创建了一个工作正常的查询,我对这两个“回显”的日期有问题:
echo "du : $item->session_du | ";
echo "au : $item->session_au<br /><br />";
Echo以下列格式显示日期:
2016-01-11 23:00:00
我需要这种格式的输出
lundi 11 janvier 2016
我还没有办法做到这一点所以如果有人能告诉我如何解决这个问题,我将不胜感激。
查询:
$candidateid = JRequest::getVar('gprh_fabrik_user_enrollment___id');
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query
->select (array('gprh_fabrik_user_enrollment.id', 'gprh_fabrik_user_training_124_repeat.nom_formation', 'gprh_fabrik_user_training_124_repeat.intitule_session', 'gprh_fabrik_user_training_124_repeat.session_du', 'gprh_fabrik_user_training_124_repeat.session_au'))
->from('gprh_fabrik_user_enrollment')
->leftJoin('gprh_fabrik_user_enrollment_repeat_choix_formation ON gprh_fabrik_user_enrollment.id = gprh_fabrik_user_enrollment_repeat_choix_formation.parent_id')
->leftJoin('gprh_fabrik_user_training_124_repeat ON gprh_fabrik_user_enrollment_repeat_choix_formation.choix_formation = gprh_fabrik_user_training_124_repeat.id')
->leftJoin('gprh_fabrik_user_training ON gprh_fabrik_user_training_124_repeat.parent_id = gprh_fabrik_user_training.id')
->having('gprh_fabrik_user_enrollment.id = ' . $db->quote($candidateid))
->group('gprh_fabrik_user_enrollment.id, gprh_fabrik_user_training_124_repeat.nom_formation, gprh_fabrik_user_training_124_repeat.intitule_session, gprh_fabrik_user_training_124_repeat.session_du, gprh_fabrik_user_training_124_repeat.session_au');
$db->setQuery($query);
$row = $db->loadObjectList();
echo "<div style='font-family: arial, helvetica, sans-serif; font-size: 11pt;'><OL>";
foreach ($row as $item)
{
echo "<LI> $item->nom_formation | ";
echo "$item->intitule_session | ";
echo "du : $item->session_du | ";
echo "au : $item->session_au<br /><br />";
echo "</LI>";
}
echo "</OL></div>";
答案 0 :(得分:0)
要将日期翻译成其他语言,您可以执行以下操作:
setlocale(LC_TIME, 'fr_FR');
// with $item->session_du = "2016-01-11 23:00:00"
print strftime('du : %A %d %B %Y', strtotime($item->session_du));
将输出:
lundi 11 janvier 2016
strtotime()接受日期字符串并返回时间戳,strftime()接受该时间戳并应用格式,返回基于setlocale()配置的字符串。
答案 1 :(得分:0)
由于你使用面向对象的approch,你真的应该使用DateTime
类和IntlDateFormatter
。
只要在使用日期之前声明,您就可以使用相同的格式化程序。
$formatter = new IntlDateFormatter('fr_FR', IntlDateFormatter::LONG, IntlDateFormatter::LONG);
$dt = new DateTime($item->session_du);
echo "du : {$formatter->format($dt)} | ";