아래 PHP 함수는 주어진 시작일자($s_date)와 종료일자($e_date) 사이의 남은 일 수를 계산하는 기능을 합니다. 함수는 다음과 같은 단계로 작동합니다:
$e_date가 빈 문자열인 경우, 즉 종료일자가 제공되지 않은 경우에는 "0"을 반환합니다.
시작일자와 종료일자를 각각 연, 월, 일로 분리하여 배열로 저장합니다. (explode 함수를 사용하여 문자열을 구분자(여기서는 "-")로 분리합니다.)
mktime 함수를 사용하여 시작일과 종료일의 타임스탬프를 생성합니다. 이 함수는 연, 월, 일, 시, 분, 초를 기반으로 타임스탬프를 반환합니다.
시작일의 타임스탬프($s_time)와 종료일의 타임스탬프($e_time)를 비교하여 시작일이 종료일보다 늦은 경우 0을 반환합니다. 즉, 시작일이 종료일보다 나중인 경우에는 남은 일 수가 없다는 의미입니다.
그렇지 않은 경우, 종료일과 시작일 사이의 일 수를 계산합니다. $result_time 변수에는 시작일과 종료일 사이의 초 단위의 차이가 저장되어 있습니다.
만약 계산된 일 수가 음수라면, 즉 종료일이 시작일보다 이전인 경우에는 0을 반환합니다. 이는 올바르지 않은 입력이거나 종료일이 시작일보다 이전인 경우를 처리하는데 사용됩니다.
그렇지 않은 경우, 남은 일 수를 반올림하여 반환합니다. 반환되는 값은 시작일과 종료일 사이의 전체 일 수입니다.
이 함수는 주어진 시작일과 종료일에 대해 남은 일 수를 정확하게 계산하는데 사용될 수 있습니다.
function cal_remain_days($s_date, $e_date)
{
if ($e_date=="") {
return "0";
}
$s_date_ex = explode("-", $s_date);
$e_date_ex = explode("-", $e_date);
$s_time = mktime(0, 0, 0, $s_date_ex[1], $s_date_ex[2], $s_date_ex[0]);
$e_time = mktime(23, 59, 59, $e_date_ex[1], $e_date_ex[2], $e_date_ex[0]);
if ($s_time > $e_time) {
return 0;
} else {
$result_time = ($e_time - $s_time) / (60*60*24);
if ($result_time < 0) {
return 0;
} else {
return round($result_time);
}
}
}
'Web > PHP' 카테고리의 다른 글
freegeoip.app API를 호출하여 IP 주소의 국가, 위도 및 경도를 가져오는 코드 (0) | 2024.03.18 |
---|---|
CKEditor5 클립보드 이미지 업로드 하는 방법(Paste, Ctrl+v) (0) | 2024.03.07 |
PHP) 그누보드에서 스마트에디터/ckeditor 에 링크를 입력할 경우 target 값 없이 입력이 될 경우 (0) | 2024.02.02 |
PHP] 사이트맵(sitemap.xml) 생성하는 소스 (0) | 2021.12.02 |
PHP] 네이버맵 API를 이용한 좌표로 주소구하기 (0) | 2021.11.05 |