2016-06-14 1 views
0

시장 마감 날짜를 표시하려면 어제 날짜를 알아야합니다. 이것은 시장이 주말에 열리지 않기 때문에 월요일부터 금요일까지만 적용됩니다. 이 형식을 사용하면 어떻게 할 수 있습니까?PHP는 주말을 제외하고는 어제 날짜를 얻습니다.

$date= new \DateTime(); 
$oneDay = new \DateInterval('P1D'); 
$date->sub($oneDay); 
if ('Sunday' === $date->format('l')) { 
    $date->sub($oneDay); 
} 
if ('Saturday' === $date->format('l')) { 
    $date->sub($oneDay); 
} 
echo $date->format('Y-m-d'); 

난 그냥, 오늘 날짜를 얻을 하루 빼기, 그리고 일요일 있는지 확인 :

<?php 
$yesterday = date("Y-m-d", mktime(0, 0, 0, date("m") , date("d")-1,date("Y"))); 
echo $yesterday; 
?> 
+2

'날짜 ("w") '(~ 6 0) 당신에게 일주일의 숫자 일을 줄 것이다. 거기에서 평일을위한 조건부를 작성할 수 있습니다. – jszobody

답변

0

오늘 주일이 date('w') 인 날을 확인할 수 있습니다. 일요일 토요일 0이며, 주 6

입니다 그리고 그 정보를, 당신은 할 수 있습니다 :

$yesterday = strtotime(date('w') == 0 || date('w') == 6 ? 'last friday' : 'yesterday'); 
echo date('Y-m-d', $yesterday); 

을 기본적으로, 주말의 경우, 그렇지 않으면, 당신이 물어, 마지막 금요일 요청 어제 PHP. 한 줄에 마음에 들지 않으면

: 우리의 경우

$w = date('w'); 
if($w == 0 || $w == 6) 
    $yesterday = strtotime('last friday'); 
else 
    $yesterday = strtotime('yesterday'); 

$yesterday = date('Y-m-d', $yesterday); 

오늘, Tuesday, June 14th 2016를, 그것은 2016-06-13를 반환합니다. 더 많은 최신 기능에 대한 자세한 내용은

: http://php.net/manual/en/function.date.php

+0

감사합니다. 한 줄 옵션을 좋아합니다. 매우 유익한. –

+0

문제 없습니다 @ 길롱. 답변으로 표시해 주시겠습니까? :) –

+0

예 표시가 있습니다. 다시 Chin에게 감사드립니다. 내 고객과 함께 진행 한 후에도 월요일에도 그렇다면 금요일을 마지막으로 살펴 봐야합니다. 그래서이 선을 다음과 같이 조정합니다 ... $ yesterday = strtotime (date ('w') == 0 |에코 날짜 ('Ym-d', $ 어제), (끝) –

2

여기에 그것을 할 수있는 한 가지 방법입니다. 그렇다면 하루를 빼십시오. 그럼 나는 토요일에 똑같은 일을한다. 궁극적으로 지난 주말로 끝납니다.

금요일이 휴일 일 수 있으며 시장이 폐쇄 될 수 있으므로 영업일이 다르다는 점에 유의하십시오.

관련 문제