2014-01-24 2 views
0

배열에 4 개의 날짜를 추가하는 코드가 있습니다. 그러나 날짜는 배열의 각 값에 대해 동일하게 유지됩니다. 그냥 나에게 대신 2014년 1월 24일, 2014년 1월 31일, 2014년 2월 7일의 2014년 1월 24일 4 개 값, 2014년 2월 14일For 루프가 날짜를 위쪽으로 증가시키지 않습니다

감사

 $myArray = array(); 

     // Number of days 
     $days = get_post_meta($post_id, 'wpcf-inc_recur_freq', true); 

     // cycle from 1st week's due date to the end of payment cycle 
     for($i = 1; $i <= 4; $i++) { 

      $myArray[] = date($mysqldate, strtotime("+" . $days . " days")); 

     } 

답변

2

예, 매번 현재 날짜에 고정 된 일수를 단순히 추가하기 때문에 동일한 날짜의 사본 4 개를 제공합니다. 당신이 할 첫 번째 날짜가 오늘입니다 제가 루프를 변경 한

for($i = 0; $i < 4; $i++) { 
    $myArray[] = date($mysqldate, strtotime("+" . ($days * $i) . " days")); 
} 

참고 가정, 1..4 대신 0..3를 실행하려면 :

나는 당신이 아마 수 있도록 for 루프를 변경하려는 생각 . 실제로 처음으로 원하는 날짜가 오늘 이후에 $days 일이면 1..4을 사용으로 되돌립니다.


다음과 같은 PHP 코드 동작에서 볼 수

출력
date_default_timezone_set("EST"); 
$myArray = array(); 
$days = 7; 
for($i = 0; $i < 4; $i++) { 
    $myArray[] = date("Y-m-d", strtotime("+" . ($days * $i) . " days")); 
} 
var_dump($myArray); 

은 (one of the online PHP executors 사용) : 그러나

array(4) { 
    [0]=> string(10) "2014-01-24" 
    [1]=> string(10) "2014-01-31" 
    [2]=> string(10) "2014-02-07" 
    [3]=> string(10) "2014-02-14" 
} 

를 그것은수있다 실제 $days 변수가 0으로 설정되어 있는지 확인하십시오. (당신은 그것이 7로 설정 될 것 같아 보인다). $days 값이 0이면 위의 수정 된 코드가있는 모든 날짜가 오늘이기 때문에 확인해야합니다. 난 당신과 SHIFT 키를 열심히 확실히 눌러 않았다 의심

wpcf-inc_recur_freq 
    ^^ ^
    | |  | 
    | +-----+------- underscore 
    +----------------- hyphen 

: 제로로 설정되는 값에 대한 하나의 가능성은 당신이 찾고있는 키에 밑줄 및 하이픈 당신의 특별한 혼합물이다 첫 번째 문자를 입력 할 때 _ 문자 :-)

+0

는 나 ($ 일 + $ I) – user1844933

+0

user1844933 @, 그것은 확실히 multiplicatiion'*'의 ($ 난 * $ 일)을합니다. '$ days'가 7이라고 가정하면 7 * 0, 7 * 1, 7 * 2 등이 필요합니다. – paxdiablo

+0

감사의 말은 당신이 의미하는 바를 알고 변경을가했지만 여전히 어떤 이유로 작동하지 않습니다. 여전히 같은 날에 – user537137

1

을 제공합니다 루프에서 $ days를 증가시키지 않으므로 루프가 실행될 때마다 동일한 값을 제공합니다.

0

루프에서 $ 일을 증가시키지 않습니다.

$mysqldate = date('Y-m-d'); 

// Number of days 
$days = get_post_meta($post_id, 'wpcf-inc_recur_freq', true); 

// cycle from 1st week's due date to the end of payment cycle 
for($i = 1; $i <= 4; $i++) { 
    $myArray[] = date($mysqldate, strtotime("+" . $i*$days . " days")); 
} 
var_dump($myArray); 
0

시도해보십시오.

  $mysqldate = date('Y-m-d'); 

     // Number of days 
     $days = get_post_meta($post_id, 'wpcf-inc_recur_freq', true); 

     // cycle from 1st week's due date to the end of payment cycle 
     for($i = 1; $i <= 4; $i++) { 
      $myArray[$i] = date($mysqldate, strtotime("+" . $i*$days . " days")); 
     } 
     var_dump($myArray); 
관련 문제