更改echo函数

时间:2016-01-02 02:53:13

标签: php sql

我创建了一个工作正常的查询,我对这两个“回显”的日期有问题:

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>";

2 个答案:

答案 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()配置的字符串。

更多细节,这里: http://php.net/manual/en/function.setlocale.php

答案 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)} | ";