dongtuo3795 2013-03-05 20:13
浏览 30
已采纳

CakePHP日期数组

        $dts = new DateTime(AppController::getSetting('event_start'));
        $dtf = new DateTime(AppController::getSetting('event_finish'));        

        //CONTROLLER
...
        $weekdays = array(0,1,2,3,4,5,6);

        $dates = array();
        $today = strtotime(date("Y-m-d", $dts->getTimestamp()));
        $end_date = strtotime(date("Y-m-d", $dtf->getTimestamp()));
        while($today <= $end_date) 
        {
            $weekday = date("w", $today);
            if (in_array($weekday, $weekdays)) 
            {
                array_push($dates, date("Y-m-d", $today));
            }
            $today += 86400;
        }

        $this->set('dates', $dates);
...



//VIEW
...
    echo $this->Form->input('date', array('options'=> $dates));
...

dts and dtf are a start and finish date I get from my database...

When I select a date from my drop box in my view, it submits ok but all i get in my database is 0000-00-00?

What am I doing wrong here?

EDIT

My array out puts this with

Debugger::dump($dates);

    array(
(int) 0 => '2013-04-01',
(int) 1 => '2013-04-02',
(int) 2 => '2013-04-03',
(int) 3 => '2013-04-04',
(int) 4 => '2013-04-05',
(int) 5 => '2013-04-06',
(int) 6 => '2013-04-07'
)

EDIT This is what my query looks like

INSERT INTO cake.tickets (first_name, last_name, email, phone, date, quantity) VALUES ('brbt', 'trbb', 'ver@fvef.com', 765657, //THIS IS THE DATE//2, 2).

It seems to only input the key?

  • 写回答

1条回答 默认 最新

  • doucu7330 2013-03-05 20:53
    关注

    Make your keys and your values the same. The key is what is saved, the value is what is seen by the user.

    $dates = array();
    $today = strtotime(date("Y-m-d", $dts->getTimestamp()));
    $end_date = strtotime(date("Y-m-d", $dtf->getTimestamp()));
    while($today <= $end_date) 
    {
        $weekday = date("w", $today);
        if (in_array($weekday, $weekdays)) 
        {
            $dates[date("Y-m-d", $today)] = date("Y-m-d", $today);
        }
        $today += 86400;
    }
    $this->set('dates', $dates);
    

    Your date array should now look something like this:

    array(
     '2013-04-01' => '2013-04-01',
     '2013-04-02' => '2013-04-02',
     '2013-04-03' => '2013-04-03',
     '2013-04-04' => '2013-04-04',
     '2013-04-05' => '2013-04-05',
     '2013-04-06' => '2013-04-06',
     '2013-04-07'=> '2013-04-07'
    )
    

    Which will generate the proper select options.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)