2011-03-29 3 views
1

메신저 멕시코에서 여름 시간을 얻으려면이 함수를 사용하는 것이 좋습니다.php date 1 개월 전

function horarioVerano() { 
$year = date("Y"); 
$ahora = strtotime(date("d-m-Y")); 

$inicio_invierno = strtotime("last Sunday April $year"); 
//echo date('Y-m-d H:i:s', $inicio_invierno); 

$fin_invierno = strtotime("last Sunday November $year"); 
//echo date('Y-m-d H:i:s', $fin_invierno); 

if ($ahora > $inicio_invierno && $ahora <= $fin_invierno) 
    $num = 5; 
else 
    $num = 6; 

return $num; 

}

하지만 난 내가 walways 다른 달 동안 동일한 2011-03-27하고 그것이 있어야로하지 2011-04-24을 얻을 echo date("Y-m-d",$inicio_invierno) 경우 항상 이전 달의 날짜를 얻을 지난 달 가져 오기

답변

1

"지난 4 월 $ year"은 "April $ year"(이달의 첫 번째 달을 나타냄)로 구문 분석 한 다음 이에 대해 "지난 일요일"을 계산합니다. 4 월 마지막 일요일을 원하면 "지난 일요일 4 월 $ year"이라고 말하십시오. 자세한 내용은 the documentation을 참조하십시오.

+0

대단히 감사합니다. – Gustavo

+0

"2012 년 10 월 첫째주"형식은 PHP 5.2.7 이전 버전에서는 작동하지 않습니다. 따라서 1970 년을 포함하여 반환 된 날짜를 얻는다면 strtotime() 함수에서 "of"를 생략하고 싶을 것입니다. 그러나 strtotime에서 "First"를 사용하면 5.2.7 이전의 PHP에서는 제대로 작동하지 않지만 strtotime은 "Last"와 같은 다른 옵션에도 계속 사용할 수 있습니다. –

1

정확하게이 점은 무엇입니까?

$ahora =strtotime(date("d-m-Y")); 

문자열 기반 날짜를 만든 다음 strtotime()을 사용하여 시간 값 (정수)으로 되돌립니다. CPU 사이클의 낭비. 어떻습니까

$ahora = time(); 

대신에?

+0

감사합니다! 잘 했어. – Gustavo

+0

'time()'은'strtotime (date ("d-m-Y"))'와 완전히 똑같지는 않습니다. 후자는 현재 날짜의 시작에 대한 타임 스탬프를 반환하고 전자는 현재 초에 대한 타임 스탬프를 반환합니다. 추가 정밀도는'$ ahora <= $ fin_invierno' 테스트에 대해 다른 결과를 초래할 것입니다. – Anomie

관련 문제