空的

时间:2017-05-24 01:25:11

标签: php foreach

我可以看到这个问题已被解决了好几次,我仔细阅读了所有主题,但可以找到解决我问题的方法。

以下是空的时候返回01-01-1970的代码:

    $candidateid = '{gprh_fabrik_user_enrollment___id}'; 
    $db = JFactory::getDbo();
    $query = $db->getQuery(true);
    $query ->select (array('gprh_fabrik_user_training_124_repeat.date_exa_2')) ->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.date_exa_2');
    $db->setQuery($query);
    $row = $db->loadObjectList();
    foreach ($row as $item) { return date('d-m-Y', strtotime($item->date_exa_2)); };

在此感谢一些帮助。提前致谢。干杯,马克

2 个答案:

答案 0 :(得分:0)

这将解决它。您只需在传递到$item->date_exa_2

之前检查strtotime()是否为空
foreach($row as $item) {
    return (!empty($item->date_exa_2)) ? date('d-m-Y', strtotime($item->date_exa_2)) : '';
}

答案 1 :(得分:-1)

日期函数:

日期('格式''时间戳&#39);

时间戳是一个从1970年1月1日的Unix纪元开始的计数。因此,时间戳只是特定日期和Unix纪元之间的秒数。

当$ item-> date_exa_2为空时,strtotime($ item-> date_exa_2)返回0(Unix Epoch为0秒),日期函数返回01-01-1970。

试试这个

foreach ($row as $item){ 
    $time = strtotime($item->date_exa_2);
    if($time){
        return date('d-m-Y', $time); 
    }else{
        return '';
    }
};