2011-09-13 2 views
0

: 즉혼란 날짜 조작이 같은 모든 일요일을 통과하기 위해 묶는

03.10.2010 00:00:00.000000, Sun (275) (1286053200) 
10.10.2010 00:00:00.000000, Sun (282) (1286658000) 
17.10.2010 00:00:00.000000, Sun (289) (1287262800) 
24.10.2010 00:00:00.000000, Sun (296) (1287867600) 
31.10.2010 00:00:00.000000, Sun (303) (1288472400) 
06.11.2010 23:00:00.000000, Sat (309) (1289077200) <-- 
13.11.2010 23:00:00.000000, Sat (316) (1289682000) 
20.11.2010 23:00:00.000000, Sat (323) (1290286800) 
27.11.2010 23:00:00.000000, Sat (330) (1290891600) 
04.12.2010 23:00:00.000000, Sat (337) (1291496400) 

한 시간을 잃었다!? :

/*self::WEEK = 604800*/ 
/* 3600 * 24 * 7 looks like 7 days for me*/ 


    $start = 1286053200; 
    for ($i=0; $i < 10; $i++) { 
     echo date('d.m.Y H:i:s.u, D (z)', $start) . ' (' . $start . ')<br/>'; 
     $start += self::WEEK; 
    } 

하지만 어떤 경우에 나는이 볼 어디에?!

답변

1

시도의 한 strtotime()는

$start = 1286053200; 
for ($i=0; $i < 10; $i++) { 
    echo date('d.m.Y H:i:s.u, D (z)', strtotime(' +' . ($i * 7) . ' DAYS',$start)) . ' (' . $start . ')<br/>'; 
} 
+1

'strtotime ("+". $ i. "week", $ start);'더보기 좋게 $ -) – Subdigger

+0

SubDigger의 제안으로 업데이트되었습니다. 감사! – Charlie

1

Daylight saving?

대신 gmdate()을보십시오.

+0

마녀 방식으로 나는 gmdate를 사용해야합니까? 내 문제를 어떻게 해결할 수 있습니까? – Subdigger

+0

@Subdigger :'gmdate'는 일광 절약 시간제가없는 GMT에서 작동합니다. –

+0

이 변경 :'echo gmdate ('d.m.Y H : i : s.u, D (z)', $ start + 3600 * 2). '('. $ start. ')
'; '도움이되지 않습니다. – Subdigger

0

나는 similar problem하는 기능을 만들었습니다. 어쩌면 당신은 유용 할 것입니다.

function getDays($year, $dayofweek, $format, $timezone='UTC') 
{ 
    $fridays = array(); 
    $startDate = new DateTime("{$year}-01-01 {$dayofweek}", new DateTimezone($timezone)); 
    $year++; 
    $endDate = new DateTime("{$year}-01-01", new DateTimezone($timezone)); 
    $int = new DateInterval('P7D'); 
    foreach(new DatePeriod($startDate, $int, $endDate) as $d) { 
     $fridays[] = $d->format($format); 
    } 

    return $fridays; 
} 

$sundays = getDays('2010', 'Sunday', 'd.m.Y H:i:s.u, D (z)', 'America/New_York'); 
var_dump($sundays); 
관련 문제