首頁  >  文章  >  後端開發  >  台历价格表

台历价格表

WBOY
WBOY原創
2016-06-13 12:37:23987瀏覽

日历价格表?
问题:价格人数信息不能对应数组里面有的日期才显示(比如数组里面有2013-10-12和2013-10-21才有价格和人数,但程序会依次从开始日期显示,而不是在生成的日历里面对应的日期里才显示),有高手请指点一下,越改逻辑越混乱了。
现在效果如图:
代码如下:

    class productDate{
    var $product_id = '';
    var $date = '';
    var $original_date = '';
    var $nextDate = '';
    var $prices = '';
    
    var $count = 42;

    var $nowWeek;
    var $nowMonth;
    var $nextMonth;
    var $startDate;
    var $lastDate;
    
    function create($product_id, $date, $prices){
        $this->product_id = $product_id;
        $this->original_date = $this->date = strtotime($date);
        $this->prices = $prices;
        $this->_init();
        $datesTmp = array_keys($this->prices);
        $this->lastDate = array_pop($datesTmp);
    }
    /**
    * 下一个月
    * 
    */
    function createNext(){
        $this->nextDate = $date; //下一月, 待处理
        $this->create($this->nextDate);
    }
    
    function getNextMonth($tmp_date, $step = 1){
        //切割出年份
        $tmp_year= date('Y', $tmp_date);
        //切割出月份
        $tmp_mon =date('m', $tmp_date);
        $tmp_nextmonth=mktime(0,0,0,$tmp_mon + $step,1,$tmp_year);
        //得到当前月的下2个月 ,最晚的日期的下一个月的开始
        return $tmp_nextmonth;
    }
    
    function getPreMonth($tmp_date, $step = 1){
        //切割出年份
        $tmp_year= date('Y', $tmp_date);
        //切割出月份
        $tmp_mon =date('m', $tmp_date);
        $tmp_premonth=mktime(0,0,0,$tmp_mon - $step,1,$tmp_year);
        //得到当前月的上一个月 
        return $tmp_premonth;
    }
    /**
    * 初始化参数
    * 
    */
    function _init(){
        $this->nowWeek = date('w', $this->date);
        $this->nowMonth = date('m', $this->date);
        $this->nextMonth = date('m', $this->date + 86400 * $this->count);
        $this->startDate = $this->date - 86400 * $this->nowWeek;//获取开始日期
    }
    /**
    * 获取html
    * 
    */
    function getHtml(){
        $box = $this->getBox();
        while($this->getNextMonth($this->date, 2) lastDate){
            $this->date = $this->getNextMonth($this->date);
            $this->_init();
            $box .= $this->getBox();
        }

        return 

product_id}">
{$box}

EOF;
    }
    /**
    * 获取日历块
    * 
    */
    function getBox(){
        $result = '
    ';
            $startDate = $this->startDate;
            
            for($i = 0; $i count; $i++){  
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn