2015-11-30 15 views
1

從這個代碼:腓非阱,形成數值遇到

$kw = CalenderWeekHelper::getCalenderWeek($currentYear); 
if(isset($_POST['generate'])) { 
    for($i = 0; $i < 52; $i++) { 
     foreach($users as $user) { 

      if ($i > 52) { 
       break; 
      } 
      $start = $kw[$i]['start']; 
      $end = $kw[$i]['end']; 

      $startCon = date('Y-m-d', $start); 
      $endCon = date('Y-m-d', $end); 
     } 
    } 
} 

助手類:

class CalenderWeekHelper { 

    public static function getCalenderWeek($year) 
    { 
     for ($i=0; $i <= 52; $i++) 
     { 
      $week = sprintf('%02s', $i); 
     $from = date("Y-m-d", strtotime("{$year}W{$week}")); # d.m.Y 
      $to = date("Y-m-d", strtotime("{$year}W{$week} +6 days")); 
      $weekArray[$i] = array('start' => $from, 'end' => $to); 

     } 
     return $weekArray; 
    } 
} 

我接收:

說明:所遇到的一個非阱,形成數字值in ... line:

指向這些行:

$startCon = date('Y-m-d', $start); 
$endCon = date('Y-m-d', $end); 

編輯: 的var_dump($千瓦)打印出以下幾點:

array (size=53) 

     0 => 
     array (size=2) 
      'start' => string '1970-01-01' (length=10) 
      'end' => string '1970-01-01' (length=10) 
     1 => 
     array (size=2) 
      'start' => string '2014-12-29' (length=10) 
      'end' => string '2015-01-04' (length=10) 
     2 => 
     array (size=2) 
      'start' => string '2015-01-05' (length=10) 
      'end' => string '2015-01-11' (length=10) 
     3 => 
     array (size=2) 
      'start' => string '2015-01-12' (length=10) 
      'end' => string '2015-01-18' (length=10) 
     4 => 
     array (size=2) 
      'start' => string '2015-01-19' (length=10) 
      'end' => string '2015-01-25' (length=10) 
     5 => 
     array (size=2) 
      'start' => string '2015-01-26' (length=10) 
      'end' => string '2015-02-01' (length=10) 
     6 => 
     array (size=2) 
      'start' => string '2015-02-02' (length=10) 
      'end' => string '2015-02-08' (length=10) 
     7 => 
     array (size=2) 
      'start' => string '2015-02-09' (length=10) 
      'end' => string '2015-02-15' (length=10) 
     8 => 
     array (size=2) 
      'start' => string '2015-02-16' (length=10) 
      'end' => string '2015-02-22' (length=10) 
     9 => 
     array (size=2) 
      'start' => string '2015-02-23' (length=10) 
      'end' => string '2015-03-01' (length=10) 
     10 => 
     array (size=2) 
      'start' => string '2015-03-02' (length=10) 
      'end' => string '2015-03-08' (length=10) 
     11 => 
     array (size=2) 
      'start' => string '2015-03-09' (length=10) 
      'end' => string '2015-03-15' (length=10) 
     12 => 
     array (size=2) 
      'start' => string '2015-03-16' (length=10) 
     'end' => string '2015-03-22' (length=10) 

有誰知道一個解決方案嗎?

+0

'$ kw [$ i] ['start']'和'$ kw [$ i] ['start']'包含了什麼? – Lino

+0

'date()'接受一個unix時間戳作爲它的第二個參數。 '$ start'和'$ end'中的值是什麼? – samlev

+0

請問var_dump($ kw)'給我們看結果嗎? – Lino

回答

1

date()函數只接受一個unix時間戳。

在代碼中,你有兩個選擇:

1:使用$start$end直接,因爲他們早已格式化:

$startCon = $start; 
$endCon = $end; 

2:打開$start$end成Unix時間戳和strtotime()

$startCon = date('Y-m-d', strtotime($start)); 
$endCon = date('Y-m-d', strtotime($end)); 

如果要更改格式,請使用se cond one。如果沒有,請使用第一個。