2015-11-30 20 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。如果没有,请使用第一个。