php – Doctrine:获取和设置字段值时更改日期格式

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – Doctrine:获取和设置字段值时更改日期格式脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我希望能够使用我自己的日期格式(dd / mm / yyyy)而不是教条(yyyy-mm-dd)来获取和设置日期.我找到了一种为每个日期字段指定getter和setter的方法,但我想以更方便的方式进行操作(每个表中每个日期字段的1个setter 1 getter很多)

class Curs extends BaseCurs {
    PRivate function fechaDesdeEsp($fecha){
        $fecha = new DateTime($fecha);
        return $fecha->format('Y-m-d');
    }
    private function fechaDesdeiso($fecha){
        $fecha = new DateTime($fecha);
        return $fecha->format('d/m/Y');
    }
    public function setFechainici($fecha_inici) {
        return $this->_set('fecha_inici',$this->fechaDesdeEsp($fecha_inici));
    }
    public function getFechainici() {
        return $this->fechaDesdeIso($this->_get('fecha_inici'));
    }

}

希望您找到解决方案,先谢谢

解决方法

我发现这对我来说是最好的解决方案:

/// models/DateFormatBehaior.PHP
class DateFormatListener extends Doctrine_Record_Listener{

    public function preInsert(Doctrine_event $Event){
        $this->_prepare_date($Event);
    }

    public function preUpdate(Doctrine_event $Event){
        $this->_prepare_date($Event);
    }

    // Private stuff
    private function _prepare_date(Doctrine_event $Event){
        $Model = $Event->getInvoker();
        foreach($Model->getTable()->getColumns() as $FieldName=>$Field){
            if($Field['tyPE']=='timestamp'){
                if(preg_match("/([0-9]{2})\/([0-9]{2})\/([0-9]{4})/",$Model[$FieldName],$Matches)){
                    $Model->$FieldName = sprintf("%s-%s-%s 00:00:00",$Matches[3],$Matches[2],$Matches[1]); // YYYY-DD-MM HH:MM:SS
                }
            }
        }
    }

}
class DateFormatTemplate extends Doctrine_Template{

    public function setTableDeFinition(){

        $this->addListener(new DateFormatListener);
    }

}

然后,每个具有时间戳字段的模型:

/// models/MyModel.PHP
abstract class MyModel extends Doctrine_Record{

    public function setTableDeFinition(){
        // [...]
    }
     public function SETUP(){
        parent::setUp();
        $this->actAs("DateFormatTemplate");
        // [...]
     }

}

脚本宝典总结

以上是脚本宝典为你收集整理的php – Doctrine:获取和设置字段值时更改日期格式全部内容,希望文章能够帮你解决php – Doctrine:获取和设置字段值时更改日期格式所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。