2010-11-29 3 views
0

PHP에서 주 범위를 조정하는 데 문제가 있습니다.
나는 월요일에 시작하는 현재 일주일을 보여주기 위해 일하고있다.
이번 주에는 11/29/2010 - 12/03/2010을 보여줍니다.현재 월요일부터 2 주를 포함한 날짜 범위를 받으십시오.

월요일의 두 금주의 현재 주 월요일부터 시작하여 종료일을 표시하려면이 값을 수정해야합니다.

예를 들어 현재는 11/29/2010의 시작 날짜와 12/10/2010의 종료 날짜가 표시됩니다. 여기

내가 추가하려면 어떻게 내 코드

<? 
$timestamp = time(); 
echo date("m/d/Y", strtotime("this monday", $timestamp)); 
echo " - "; 
echo date("m/d/Y", strtotime("Next Friday", $timestamp)); 
?> 

입니다 +7 "다음 금요일"

답변

1

.. 현재 날이 화요일 또는 나중에 ...하지만 당신을위한 출발점 작동하는지 깨달았다
그것은 월요일 통과했다, 그것은 다음 주 월요일

여기에 내 제안

입니다 반환
<? 
$current_wkday = date('N', time()); 
switch ($current_wkday) 
{ 
    /* assuming on sunday, get next monday */ 
    case 0: $this_monday = strtotime('+1 day'); break; 
    case 1: $this_monday = time(); break; 
    default: $this_monday = strtotime('-'.($current_wkday-1).'day'); break; 
} 

echo date("m/d/Y", $this_monday); /* 11days = 7+(5-1) */ 
echo " - "; 
echo date("m/d/Y", $this_monday+(86400*11)); 
?> 
+0

Drew의 코멘트가 효과가 있었지만 오늘은 화요일이기 때문에 당신이 말한 것처럼. 다음 월요일에 돌아 오면 같은 범위에 머 무르지 않고 끝나는 날짜를 다른 주보다 더 밀었을 것입니다. 나는 너의 것이 완전한 해결책이라고 믿으며, 나는 그것을 고맙게 생각한다. 나는 그것을 연구하고 그것의 대부분을 이해한다. 중간 섹션이 어떻게 작동하는지 보지 못합니다. 이걸 다시보고 시간이 있으면 설명을 고맙게 생각합니다. 고맙습니다! –

+0

@Dirty Bird Design - 현재 날짜가 월요일 인 경우 중간 부분은 **이 월요일 **이 오늘입니다. 현재 날짜가 일요일 인 경우 ** 대신 이번 주 ** **에 +1 일을 사용해야합니다. 그렇지 않은 경우 월요일의 요일은 current_weekday-1과 동일합니다 (예 : 화요일, 이번 월요일에는 -1, 수요일은 -2 등) – ajreal

1

대신 strtotime("Next Friday", $timestamp)strtotime("Next Friday", $timestamp) + 60*60*24*7 (일주일에 시간 (초)을 추가)을 할 THX .

+0

이 두 번째 월요일에에 시작되지 않습니다 원래의 2 주 범위에 머무르는 대신에? –

+0

@Dirty Bird Design : 나는 단지 "다음 금요일"에 +7을 어떻게 추가해야합니까? 실제로 다른 것을 테스트하지 않았어요 :-) – cambraca

1

그냥 "이전 월요일는"오직 당신은, 날짜 시간을 구성 this monday을 사용할 수 없습니다

<?php 
    $monday = date('m/d/Y', strtotime("previous monday")); 
    $friday = date('m/d/Y', strtotime($monday . " + 11 days")); 
    echo $monday . ' - ' . $friday ; 
?> 
+0

드류 - 고마워요, 이건 좋은 출발점이었습니다. 실제로 제가 한 것은 "이전 월요일"에서 "이번 월요일"로 바뀌 었습니다. 그것은 효과가있는 것처럼 보이지만, 아프다. –

관련 문제