将日期从yyyy-mm-dd更改为dd-mm-yyyy

时间:2015-12-08 09:49:19

标签: php date format

我有以下PHP代码。 我想知道如何将日期格式从yyyy-mm-dd更改为dd-mm-yyyy。 我试图自己做这个,但是有很多代码,我只是无法弄清楚如何去做。

        /********************* PUBLIC **********************/  

        /**
        * print out the calendar
        */
        public function show() {
            $year  = null;

            $month = null;

            if(null==$year&&isset($_GET['year'])){

                $year = $_GET['year'];

            }else if(null==$year){

                $year = date("Y",time());  

            }          

            if(null==$month&&isset($_GET['month'])){

                $month = $_GET['month'];

            }else if(null==$month){

                $month = date("m",time());

            }                  

            $this->currentYear=$year;

            $this->currentMonth=$month;

            $this->daysInMonth=$this->_daysInMonth($month,$year);  


            $content='<div id="calendar">'.
                            '<a href="add_event.php"><font color="white" size="4"><b>Add event</b></font></a><br><br>'.
                            '<div class="box">'.
                            $this->_createNavi().
                            '</div>'.
                            '<div class="box-content">'.
                                    '<ul class="label">'.$this->_createLabels().'</ul>';   
                                    $content.='<div class="clear"></div>';     
                                    $content.='<ul class="dates">';    

                                    $weeksInMonth = $this->_weeksInMonth($month,$year);
                                    // Create weeks in a month
                                    for( $i=0; $i<$weeksInMonth; $i++ ){



                                        //Create days in a week
                                        for($j=1;$j<=7;$j++){

                                            $content.=$this->_showDay($i*7+$j);
                                        }
                                    }

                                    $content.='</ul>';

                                    $content.='<div class="clear"></div>';     

                            $content.='</div>';

            $content.='</div>';
            return $content;   
        }

        /********************* PRIVATE **********************/ 
        /**
        * create the li element for ul
        */
        private function _showDay($cellNumber){

            if($this->currentDay==0){

                $firstDayOfTheWeek = date('N',strtotime($this->currentYear.'-'.$this->currentMonth.'-01'));

                if(intval($cellNumber) == intval($firstDayOfTheWeek)){

                    $this->currentDay=1;

                }
            }

            if( ($this->currentDay!=0)&&($this->currentDay<=$this->daysInMonth) ){

                $this->currentDate = date('Y-m-d',strtotime($this->currentYear.'-'.$this->currentMonth.'-'.($this->currentDay)));

                $cellContent = $this->currentDay;

                $this->currentDay++;   

            }else{

                $this->currentDate =null;

                $cellContent=null;
            }


            $today_day = date("d");
            $today_mon = date("m");
            $today_yea = date("Y");
            $class_day = ($cellContent == $today_day && $this->currentMonth == $today_mon && $this->currentYear == $today_yea ? "this_today" : "nums_days");

            $wyn = '<li class="' . $class_day . '">';

            require_once "mysql.php";

            if(strlen($cellContent)){
                $zap = "SELECT e_id FROM events WHERE e_data = '".$this->currentYear."-".$this->currentMonth."-".$cellContent."'";
                $wyk = mysql_query($zap);
                if(mysql_num_rows($wyk)>0) $wyn .= "<img src='img/icon1.png'>";
            }

            $wyn .= "<a href=\"show.php?date=";
            $wyn .= $this->currentYear;
            $wyn .= "-";
            $wyn .= $this->currentMonth;
            $wyn .= "-";
            $wyn .= $cellContent;
            $wyn .= "\">";
            $wyn .= $cellContent;
            $wyn .= "</a>";
            $wyn .= '</li>' . "\r\n";

            return $wyn;
    }

        /**
        * create navigation
        */
        private function _createNavi(){

            $nextMonth = $this->currentMonth==12?1:intval($this->currentMonth)+1;

            $nextYear = $this->currentMonth==12?intval($this->currentYear)+1:$this->currentYear;

            $preMonth = $this->currentMonth==1?12:intval($this->currentMonth)-1;

            $preYear = $this->currentMonth==1?intval($this->currentYear)-1:$this->currentYear;

            return
                '<div class="header">'.
                    '<a class="prev" href="'.$this->naviHref.'?month='.sprintf('%02d',$preMonth).'&year='.$preYear.'">Prev</a>'.
                        '<span class="title">'.date('M Y',strtotime($this->currentYear.'-'.$this->currentMonth.'-1')).'</span>'.
                    '<a class="next" href="'.$this->naviHref.'?month='.sprintf("%02d", $nextMonth).'&year='.$nextYear.'">Next</a>'.
                '</div>';
        }

        /**
        * create calendar week labels
        */
        private function _createLabels(){  

            $content='';

            foreach($this->dayLabels as $index=>$label){

                $content.='<li class="'.($label==6?'end title':'start title').' title">'.$label.'</li>';

            }

            return $content;
        }

        /**
        * calculate number of weeks in a particular month
        */
        private function _weeksInMonth($month=null,$year=null){

            if( null==($year) ) {
                $year =  date("Y",time()); 
            }

            if(null==($month)) {
                $month = date("m",time());
            }


            // find number of days in this month
            $daysInMonths = $this->_daysInMonth($month,$year);

            $numOfweeks = ($daysInMonths%7==0?0:1) + intval($daysInMonths/7);

            $monthEndingDay= date('N',strtotime($year.'-'.$month.'-'.$daysInMonths));

            $monthStartDay = date('N',strtotime($year.'-'.$month.'-01'));

            if($monthEndingDay<$monthStartDay){

                $numOfweeks++;

            }

            return $numOfweeks;
        }

        /**
        * calculate number of days in a particular month
        */
        private function _daysInMonth($month=null,$year=null){

            if(null==($year))
                $year =  date("Y",time()); 

            if(null==($month))
                $month = date("m",time());

            return date('t',strtotime($year.'-'.$month.'-01'));

        }

    }

    ?>

2 个答案:

答案 0 :(得分:0)

使用php date()来执行此操作,

echo date("d-m-Y",strtotime($date));

实施例

$date = "2015-12-12";
echo date("d-m-Y",strtotime($date));// echoes 12-12-2015

检查演示here

有关更多格式,请查看此link

答案 1 :(得分:0)

使用strtotime()date()

$originalDate = "2015-03-21";
$newDate = date("d-m-Y", strtotime($originalDate));

(请参阅PHP网站上的strtotimedate文档。

Reference