PHP에서 시차를 계산하는 것은 때로 귀찮은 일입니다. 하지만 날짜와 시간 함수의 사용법을 익히면 간단해집니다.
최근에 제가 사랑의 스카프를 연구할 때 사랑에 빠진 일수를 계산해야 했습니다. 이를 위해서는 PHP가 매일 날짜를 기준으로 계산해야 합니다.
(1) 데이터베이스가 있으면 쉽죠! MSSQL이라면 트리거를 사용하면 됩니다! MYSQL이라면 특별히 날짜 차이를 계산하는 함수인 datediff()를 사용하면 됩니다! 두 날짜 필드의 차이점을 다른 숫자 필드에 저장하세요. 필요할 때 호출하세요!
(2) 데이터베이스가 없으면 PHP의 시간 및 날짜 기능을 사용해야 합니다!주요 설명은 다음과 같습니다.
예: 1998년 5월 3일부터 1999-6-5까지의 일수 계산:
$days는 획득한 일수입니다.
mktime()의 매개변수가 기본값이면 현재 날짜를 사용한다는 뜻이므로 책을 빌린 날로부터 일수를 계산할 수 있습니다.
마지막으로 SQL 계산 방법에 대해 이야기해 보겠습니다.
DateDiff 기능
설명: 두 날짜 사이의 시간 간격을 반환합니다.
구문:
DateDiff(간격, 날짜1, 날짜2 [, 첫 번째 요일[, 첫 번째 주>)
간격: 필수. date1과 date2 사이의 시간 간격을 계산하는 데 사용되는 문자열 표현식입니다. 값은 설정 섹션을 참조하세요.
date1, date2: 필수입니다. 날짜 표현. 계산에 사용된 두 날짜입니다.
첫째요일: 선택사항. 주의 첫날을 지정하는 상수입니다. 지정하지 않으면 기본값은 일요일입니다. 값은 설정 섹션을 참조하세요.
첫 번째 주: 선택 사항. 해당 연도의 첫 번째 주를 지정하는 상수입니다. 지정하지 않을 경우 기본값은 1월 1일 주가 됩니다. 값은 설정 섹션을 참조하세요.
interval 매개변수는 다음 값을 가질 수 있습니다:
yyyy(연도)
q(분기)
m(월)
y(1년의 일수)
d(일)
w(요일)
와우(주)
h(시간)
n(분)
초(초)
firstdayofweek 매개변수는 다음 값을 가질 수 있습니다:
(다음은 상수값 설명)
vbUseSystem 0 NLS(National Language Support) API 설정을 사용합니다.
vbSunday 1일요일(기본값)
vb월요일 2월 월요일
vb화요일 3주 화요일
vb수요일 4주 수요일
vb목요일 5목요일
vb금요일 6금요일
vb토요일 7토요일
firstweekofyear 매개변수는 다음 값을 가질 수 있습니다:
(다음은 상수값 설명)
vbUseSystem 0 NLS(National Language Support) API 설정을 사용합니다.
vbFirstJan1 1 1월 1일이 포함된 주부터 시작합니다(기본값).
vbFirstFourDays 2는 최소 4일이 있는 새해의 첫 번째 주로 시작됩니다.
vbFirstFullWeek 3은 새해의 첫 번째 주부터 시작됩니다.
설명: DateDiff 함수는 두 날짜 사이에 존재하는 지정된 시간 간격의 수를 결정하는 데 사용됩니다.
예를 들어 DateDiff를 사용하여 두 날짜 사이의 일수 또는 오늘과 올해 마지막 날 사이의 주 수를 계산할 수 있습니다.
date1과 date2 사이의 일수를 계산하려면 "연도 중 일수"("y") 또는 "일수"("d")를 사용할 수 있습니다. 간격이 "요일"("w")인 경우 DateDiff는 두 날짜 사이의 주 수를 반환합니다.
date1이 월요일이면 DateDiff는 date2 이전의 월요일 수를 계산합니다. 이 결과에는 date2가 포함되지만 date1은 포함되지 않습니다.
간격이 "주"("ww")인 경우 DateDiff 함수는 달력 테이블의 두 날짜 사이의 주 수를 반환합니다. 이 함수는 date1과 date2 사이의 일요일 수를 계산합니다.
DateDiff는 date2가 일요일이면 date2를 평가하지만, date1이 일요일이더라도 date1은 평가하지 않습니다.
date1이 date2보다 이후인 경우 DateDiff 함수는 음수를 반환합니다. firstdayofweek 인수는 "w" 및 "ww" 구분 기호를 사용하는 계산에 영향을 줍니다.
date1 또는 date2가 날짜 리터럴인 경우 지정된 연도는 날짜의 고정 부분이 됩니다. 그러나 date1 또는 date2를 따옴표(" ")로 묶고 연도를 생략하면 코드에서 date1 또는 date2 표현식이 평가될 때마다 현재 연도가 삽입됩니다. 이를 통해 여러 해 동안 작동하는 프로그램 코드를 작성할 수 있습니다.
간격이 "연도"("yyyy")인 경우 12월 31일과 다음 해 1월 1일을 비교합니다. 실제로 차이는 단 하루이지만 DateDiff는 1년의 차이를 나타내기 위해 1을 반환합니다.
DatePart 함수
설명: 주어진 날짜에서 지정된 부분을 반환합니다. 문법:
DatePart(간격, 날짜[, firstdayofweek[, firstweekofyear>)
DatePart: function의 구문에는 다음과 같은 매개변수가 있습니다.
간격: 필수. 반환될 시간 간격을 나타내는 문자열 표현식입니다. 값은 설정 섹션을 참조하세요.
날짜: 필수. 평가할 날짜 표현식입니다.
첫 번째 요일: 선택 사항입니다. 주의 첫날을 지정하는 상수입니다. 지정하지 않으면 기본값은 일요일입니다. 값은 설정 섹션을 참조하세요.
첫 번째 주: 선택 사항. 해당 연도의 첫 번째 주를 지정하는 상수입니다. 지정하지 않을 경우 기본값은 1월 1일 주가 됩니다. 값은 설정 섹션을 참조하세요.
간격 매개변수는 다음 값을 가질 수 있습니다: yyyy(연도), q(분기), m(월), y(1년의 일 수), d(일), w(1주의 일 수), ww (주), h(시간), n(분), s(초)
firstdayofweek 매개변수는 다음 값을 가질 수 있습니다.
(다음은 상수값 설명)
vbUseSystem 0 NLS(National Language Support) API 설정을 사용합니다.
vbSunday 1일요일(기본값)
vb월요일 2월 월요일
vb화요일 3주 화요일
vb수요일 4주 수요일
vb목요일 5목요일
vb금요일 6금요일
vb토요일 7토요일
firstweekofyear 매개변수는 다음 값을 가질 수 있습니다:
(다음은 상수값 설명)
vbUseSystem 0 NLS(National Language Support) API 설정을 사용합니다.
vbFirstJan1 1 1월 1일이 포함된 주부터 시작합니다(기본값).
vbFirstFourDays 2는 최소 4일이 있는 새해의 첫 번째 주로 시작됩니다.
vbFirstFullWeek 3은 새해의 첫 번째 주부터 시작됩니다(연도 전체가 아님).
설명: DatePart 함수는 날짜를 계산하고 지정된 시간 간격을 반환하는 데 사용됩니다. 예를 들어 DatePart를 사용하여 요일이나 현재 시간을 계산합니다.
firstdayofweek 매개변수는 "w" 및 "ww" 간격 기호를 사용하는 계산에 영향을 미칩니다.
날짜가 날짜 리터럴인 경우 지정된 연도는 날짜의 고정 부분이 됩니다. 그러나 날짜를 따옴표(" ")로 묶고 연도를 생략하면 코드에서 날짜 식이 평가될 때마다 현재 연도가 삽입됩니다. 이렇게 하면 여러 해 동안 작동하는 프로그램 코드를 작성할 수 있습니다!
위 내용은 이 글의 전체 내용입니다. 모든 분들이 PHP를 능숙하게 마스터하는데 도움이 되었으면 좋겠습니다.
잠시 시간을 내어 기사를 친구들과 공유하거나 댓글을 남겨주세요. 여러분의 지원에 진심으로 감사드립니다!