ホームページ  >  記事  >  バックエンド開発  >  カレンダーの価格表?

カレンダーの価格表?

WBOY
WBOYオリジナル
2016-06-23 14:22:301467ブラウズ

カレンダーデータボックス

問題: 配列内の日付に対応する価格と人数の情報を表示できません (たとえば、価格と人数は配列内に 2013-10-12 と 2013-10-21 がある場合にのみ表示されます)。プログラムは、生成された日付ではなく、開始日から順に表示します。専門家がいる場合は、ロジックを変更するほど、アドバイスをお願いします。混乱してしまいます。
効果は次のとおりです。
コードは次のとおりです。

class productDate{
var $product_id = '';
var $original_date = ''; var $nextDate = ' ';
var $count =
var $nextMonth;
var $lastDate;
function create($ product_id, $date, $prices){
$this->product_id = $product_id;
$this->original_date = $this->date = strtotime($date); >prices = $prices;
$this->_init(); /**
* 来月
* /
$ This-& GT; $ Date; // 来月、処理される
$ This- & GT; Create ($ tmp_date, $step = 1){
‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ //切り取る年
$tmp_year= date('Y', $tmp_date);
$ TMP_NEXTMONTH = mktime (0,0,0, $ TMP_MON+$ Step, 1, $ tmp_year) }
function getPreMonth($tmp_date, $step = 1){ // 年を切り出します。 $tmp_mon =date('m' , $tmp_date)
$tmp_premonth=mktime(0,0,0,$tmp_mon - $step,1,$tmp_year); **
* 初期化パラメータ
*/
function _init(){
$this->nowWeek = date('w', $this->date);
$this->nowMonth = date('m', $ this->date);
$this->nextMonth = date('m', $this->date + 86400 * $this->startDate = $this-> ;date - 86400 * $this->nowWeek;//開始日を取得します
}
    /**
    * 获取html
    * 
    */
    function getHtml(){
        $box = $this->getBox();
        while($this->getNextMonth($this->date, 2) < $this->lastDate){
            $this->date = $this->getNextMonth($this->date);
            $this->_init();
            $box .= $this->getBox();
        }

        return <<

{$box}

EOF;
    }
    /**
    * 获取日历块
    * 
    */
    function getBox(){
        $result = '
    ';
            $startDate = $this->startDate;
            
            for($i = 0; $i < $this->count; $i++){  
        $tmp_y = date("Y-n-d", $startDate);
                $tmp_m = date("m", $startDate);
                $tmp_d = date("d", $startDate);
                if(isset($this->prices[$startDate]) && is_array($this->prices[$startDate])){
    $nowtime = date("Y-m-d",$this->prices[$startDate]['nowtime']);
                    $price = $this->prices[$startDate]['price'] ? '¥' . $this->prices[$startDate]['price'] : '暂无';
                    $nums = $this->prices[$startDate]['nums'] > 10 ? '充足' : '剩' . $this->prices[$startDate]['nums'];
                } else {
                    $price = '';
                    $nums = '';
                }

                if($startDate >= $this->date){
                    $result .= '
  • ' . $tmp_d . '' . $nums . '' . $price . '
  • ';
                } else {
                    $result .= '
  • ' . $tmp_d . '
  •  ';
                }

                if(($i < $this->count - 1) && (date('w', $startDate) == 6)){
                    $result .= '
    ';
                }
                $startDate += 86400;
            }
            $result .= "
";
        
        $isShow = '';
        if($this->original_date != $this->date){
            $isShow = ' style="display:none"';
        }
        echo "
";
        return <<

 

出行日价格表


 

    {$this->getHead()}
 


 

         
  • 星期日

  •      
  • 星期一

  •      
  • 星期二

  •      
  • 星期三

  •      
  • 星期四

  •      
  • 星期五

  •      
  • 星期六

  •  

 {$result}
 
 
EOF;
    }
    /**
    * 头部设置月份按钮
    * 
    */
    function getHead(){
        $result = '';
        $preIcon = $this->getPreMonth($this->date) > $this->getPreMonth($this->original_date) ? "search_pp_cal_nevm_icon" : "search_pp_cal_nevm_no_icon";//开始
        $nextIcon = $this->getNextMonth($this->date, 2) < $this->lastDate ? "search_pp_cal_nextm_icon" : "search_pp_cal_nextm_no_icon";//结尾
        return <<

    
    {$this->nowMonth}月


   {$this->nextMonth}月
    

EOF }

}


$date = date("Y-m-d");
$dateTmp = strtotime($date);//価格データを初期化します
foreach($) xianluttime as $k=>$v)
{
$price[$dateTmp] = array(
'nowtime' => 'price' => $v[1]
); ;
$i++;
if($i==$countday)
{ {
}
}
$obj = new productDate(); ->create($productId, $date, $price);
echo $obj->getHtml();


ディスカッションに返信してください

すべてのコードを投稿してください。 (スタイルシートを含む)
あなたのようなスニペットはテストできません

请贴全你的代码!(包括样式表)
你这样的片段无法测试
这是其它文件,太长不好贴,问题是在上面贴出的里,其它文件是弄的ajax产品json格式,问题是这儿:
foreach($xianluttime as $k=>$v)
    {
      $price[$dateTmp] = array(
        'nowtime' => $v[0],     
        'nums' => rand(2, 12),
        'price' => $v[1]
    );
    $dateTmp = $dateTmp + 86400;
    $i++;
    if($i==$countday)
    {      
      break;
      }
    }
这儿设定数组里面有一个$nowtime格式是Y-m-d,设想是这个数组里面的日期才输出这里面
 function getBox(){
        $result = '

    ';
            $startDate = $this->startDate;
            
            for($i = 0; $i < $this->count; $i++){  
        $tmp_y = date("Y-n-d", $startDate);
                $tmp_m = date("m", $startDate);
                $tmp_d = date("d", $startDate);
                if(isset($this->prices[$startDate]) && is_array($this->prices[$startDate])){
    $nowtime = date("Y-m-d",$this->prices[$startDate]['nowtime']);
                    $price = $this->prices[$startDate]['price'] ? '¥' . $this->prices[$startDate]['price'] : '暂无';
                    $nums = $this->prices[$startDate]['nums'] > 10 ? '充足' : '剩' . $this->prices[$startDate]['nums'];
                } else {
                    $price = '';
                    $nums = '';
                }

                if($startDate >= $this->date){
                    $result .= '
  • ' . $tmp_d . '' . $nums . '' . $price . '
  • ';
                } else {
                    $result .= '
  • ' . $tmp_d . '
  • '; $result .= '
    ';
";
ご都合がよければ、QQ を追加していただけますか

コード スニペットしか提供できないため、指定されたコードにコメントを作成する必要があります
それ以外の場合は、Bidu が何をしているかは神のみぞ知る

コード スニペットしか提供できないため、指定されたコードにコメントを作成する必要があります コメント
それ以外の場合は神のみぞ知るBidu は
関数 getBox() で $tmp_y の値が
foreach($xianluttime as $k=>$v) にあるかどうかを判定します

{

$price[$dateTmp] = array(
$dateTmp = $ dateTmp + 86400;

if($i==$countday)

{ {
Break; } }
}
<

' '
次の段落は実行されません:
  • /li> ';

    入力する必要があるコンテンツ配列のキーとして日付を使用すると、非常に簡単ではないでしょうか。



    コンテンツ配列に日付を入力すると、とても簡単ではないでしょうか?
    もっと具体的に教えてもらえますか?意味はわかったけど、どうやって実装するか

    rreee、意味わかりますか?

    えー、これの意味わかりますか?
    ありがとう!全体的な方向性

    二人は非常に才能があり、理解力が高すぎます
    コードを見たときはめまいがしました

    その後、Lao Xu はわずか数行のコードで「方向性」を獲得しました、私は尊敬します

    二人とても才能があり、理解力が高すぎます

    コードを見たときはめまいがしました


    その後、Lao Xu はわずか数行のコードで「方向性」を導き出しました。尊敬します

    投稿ありがとうございます

  • 声明:
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。