ํ์ค ์๊ฐ๋ ์ฒ๋ฆฌ ๋ฐฉ์¶
๊ฐ์¶
ํ์ค ์๊ฐ๋๋ฅผ ํ๋(UTC+9)๋ฐ์ ์ฌ์ฉํ์ง ์๊ณ ์ผ๊ด์ ์ฝ ์๊ฐ์ (์๋จธํ์)๋ ์๋ ํ๊ตญ์์๋
ํ์ค ์๊ฐ๋ ์ฒ๋ฆฌ์ ํ์์ฑ์ ๋ณ๋ก ๋๋ผ์ง ๋ชปํฉ๋๋ค.
์๋ฒ๋ UTC+9, ๋๋ถ๋ถ์ ์ฌ์ฉ์๋ค๋ UTC+9๋ก ์ค์ ํด ๋์ผ๋ฉด ๋ชจ๋ ๊ฐ์ ์๊ฐ์ ๋ณด๊ฒ ๋ฉ๋๋ค.
๊ทธ๋ฌ๋ ์ธ๊ตญ ์ฌ์ฉ์๋ค์๊ฒ ํ์ค ์๊ฐ๋ ์ฒ๋ฆฌ๋ ๋งค์ฐ ์ค์ํ ๋ฌธ์ ์
๋๋ค.
์๋ฅผ ๋ค์ด ๋ฏธ๊ตญ์ ๋ณธํ ์๋ง 4๊ฐ์ ํ์ค ์๊ฐ๋(EST, CST, MST, PST)๊ฐ ์๊ณ ,
์๋์ค์นด์ ํ์์ด๋ ๊ฐ๊ฐ ๋ค๋ฅธ ํ์ค ์๊ฐ๋๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๊ฒ๋ค๊ฐ ๋๋ถ๋ถ์ ์ง์ญ์์ ์๋จธํ์์ ์ค์ํ๊ธฐ ๋๋ฌธ์ ๋งค๋
๋ด, ๊ฐ์์ ์๊ฐ์ด ๋ฐ๋์ด์
๋ง์ ์น์ฌ์ดํธ ๊ด๋ฆฌ์๋ค์ ๊ณจ์น๋ฅผ ์ฉ์ด๊ณค ํฉ๋๋ค.
๊ทธ๋์ ๋ฏธ๊ตญ์ด๋ ์ ๋ฝ์์ ๋๋ฆฌ ์ฌ์ฉ๋๋ CMS๋ค์ ํ์ค ์๊ฐ๋ ์๋ ๋ณํ ๊ธฐ๋ฅ์ ํฌํจํ๊ณ ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
์ต๊ทผ์๋ ํ๊ตญ์ด ์ฌ์ดํธ๋ค๋ ์ ์ฅ ๊ณต๊ฐ๊ณผ ํธ๋ํฝ์ ์ ํ์ด ์ ์ ํด์ธ ํธ์คํ
์ ์ฌ์ฉํ๋ ์ผ์ด ๋์ด๋์
ํ์ค ์๊ฐ๋ ์ฒ๋ฆฌ๊ฐ ๋์ด์ ๋จ์ ์ผ์ด ์๋๊ฒ ๋์์ต๋๋ค.
ํด์ธ ํธ์คํ
์๋ฒ๋ค์ ํ์ง์ ํ์ค ์๊ฐ๋๋ก ๋ง์ถ์ด์ ธ ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง๊ณ ,
ํ์ง ๊ท์น์ ๋ฐ๋ผ ์๋จธํ์์ ์ ์ฉํ๊ธฐ ๋๋ฌธ์
๋๋ค.
XE์์ ์ฌ์ฉํ๋ ํ์ค ์๊ฐ๋ ์ฒ๋ฆฌ ๋ฐฉ์์ ์ด๋ฐ ๋ณต์กํ ์ํฉ์ ๋์ํ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์
๋ผ์ด๋ฏน์ค์์๋ ์๋ก์ด ๋ฐฉ์์ ๋์
ํ์์ต๋๋ค.
XE์ ์ต๋ํ ํธํ๋๋๋ก ๊ตฌํํ๊ธฐ ๋๋ฌธ์ ๋๋ถ๋ถ์ ์๋ํํฐ ์๋ฃ๋ ๊ทธ๋๋ก ์๋ํ๊ฒ ์ง๋ง,
์๊ฐ๊ณผ ๊ด๋ จ๋ ๊ธฐ๋ฅ์ ์์ฑํ์ค ๋๋ ์๋์ ์ ๋ณด๋ฅผ ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค.
XE์ ํ์ค ์๊ฐ๋ ์ฒ๋ฆฌ ๋ฐฉ์¶
XE์ ํ์ค ์๊ฐ๋๋ ๊ด๋ฆฌ ๋ชจ๋์์ ์ค์ ํ ์ ์์ผ๋ฉฐ, files/config/db.config.php
์ time_zone
์ด๋ผ๋ ์ค์ ์ผ๋ก ์ ์ฅ๋ฉ๋๋ค.
์ด ๋ ์ค์ ํ๋ ํ์ค ์๊ฐ๋๋ ๊ฒ์ํ ๋ชฉ๋ก ํ๋ฉด, ๊ธ์ฝ๊ธฐ ํ๋ฉด ๋ฑ์์ ํ๋ฉด์ ํ์๋๋ ์๊ฐ์ ์๋ฏธํฉ๋๋ค.
๋ฌธ์์ ๋๊ธ์ ์์ฑ ์ผ์, ํ์์ ๊ฐ์
๋ฐ ์ต๊ทผ ๋ก๊ทธ์ธ ์ผ์ ๋ฑ์ DB์ ์ ์ฅํ ๋๋ ์๋ฒ์ ํ์ค ์๊ฐ๋๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํฉ๋๋ค.
ํ๋ฉด์ ํ์ํ ๋ ๋ฌธ์์ ๋๊ธ์ getRegdate()
ํจ์์์ zdate()
ํจ์๋ฅผ ํธ์ถํ๋ฉด, ์ฌ๊ธฐ์ ๋ค์ ztime()
ํจ์๋ฅผ ํธ์ถํ์ฌ
DB์ ์ ์ฅ๋ ์๋ฒ ๊ธฐ์ค์ ๋ ์ง๋ฅผ ํ๋ฉด์ ํ์ํ ๋ ์ง๋ก ๋ณํํด ์ฃผ๊ฒ ๋ฉ๋๋ค.
๋ฌธ์ ๋ DB์ ์ ์ฅ๋ ๋ ์ง๊ฐ ์ด๋ ํ์ค ์๊ฐ๋ ๊ธฐ์ค์ธ์ง, ์ฆ ์๋ฒ์ ํ์ค ์๊ฐ๋๊ฐ ๋ฌด์์ธ์ง๋ ๊ธฐ๋ก๋์ง ์๋๋ค๋ ์ ์
๋๋ค.
๋ณํํ๋ ์์ ์์ date('O')
๋ฅผ ์ฌ์ฉํ์ฌ time_zone
์ค์ ๊ณผ์ ์ฐจ์ด๋ฅผ ๋น๊ตํ๋ ๊ฒ ๋ฟ์
๋๋ค.
๋ฐ๋ผ์ ๊ตญ๋ด ์๋ฒ๋ก ์ด์ํ๋ ์ฌ์ดํธ๋ฅผ ํด์ธ ์๋ฒ๋ก ์ฎ๊ธฐ๊ฑฐ๋, ํด์ธ ์๋ฒ์์ ์๋จธํ์์ ์ฌ์ฉํ๊ธฐ ์์ํ๋ฉด
์์ ์ ์์ฑ๋ ๊ธ์ ๋ ์ง๊ฐ ๋ชจ๋ ๋ช ์๊ฐ์ฉ ๋ฌ๋ผ์ง ์ ์์ต๋๋ค.
์์ ์ ์์ฑ๋ ๊ธ์ ๋ ์ง๊ฐ ์๋ชป ํ์๋๋ ๊ฒ์ ์ฌ์ดํธ ์ด์ ๋์ค ๊ด๋ฆฌ ๋ชจ๋์์ ํ์ค ์๊ฐ๋๋ฅผ ๋ณ๊ฒฝํ ๊ฒฝ์ฐ์๋ ๋ง์ฐฌ๊ฐ์ง์
๋๋ค.
๋ถ์์ด ๋ฐ์ํ ๊ฒฝ์ฐ ์ค์ํ ์ฆ๊ฑฐ๊ฐ ๋ ์๋ ์๋ ๊ธ ์์ฑ ์๊ฐ์ ์ ๋ขฐ๋๊ฐ ๋จ์ด์ง๋ ๊ฒ์
๋๋ค.
๊ด๋ฆฌ์๊ฐ ์ค์ ํ ํ์ค ์๊ฐ๋๋ฐ์ ์ฌ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์, ์ ์ธ๊ณ ์ฌ์ฉ์๋ค์ ๋์์ผ๋ก ์๋น์คํ ๋ ๋ถํธํ ์ ๋ ์์ต๋๋ค.
ํ๋ฉด์ ํ์๋๋ ์๊ฐ์ ๋ด์ ๊ธฐ์ค์ผ๋ก ํ ์๋ ์๊ณ ๋ฐ๋ ๊ธฐ์ค์ผ๋ก ํ ์๋ ์์ง๋ง,
์ด๋ ํ์ชฝ์ ์ ํํ๋๋ผ๋ ๋ค๋ฅธ ์ชฝ ์ฌ์ฉ์๋ ๋ถํธํ ์๋ฐ์ ์์ต๋๋ค.
์๋จธํ์์๋ ์ ํ ๋์์ด ๋์ง ์์ต๋๋ค.
๋ผ์ด๋ฏน์ค์ ํ์ค ์๊ฐ๋ ์ฒ๋ฆฌ ๋ฐฉ์¶
์ด๋ฐ ๋ถํธ์ ํด๊ฒฐํ๊ธฐ ์ํด ๋ผ์ด๋ฏน์ค์์๋ ์๋์ ๊ฐ์ด 3๊ฐ์ง ํ์ค ์๊ฐ๋๋ฅผ ๊ฐ๊ฐ ๋ณ๋๋ก ๊ด๋ฆฌํฉ๋๋ค.
- ์๋ฒ ์์ฒด์ ํ์ค ์๊ฐ๋
- ๋ ์ง๋ฅผ DB์ ์ ์ฅํ ๋ ์ฌ์ฉํ๋ "๋ด๋ถ ํ์ค ์๊ฐ๋" (internal timezone)
- ๋ ์ง๋ฅผ ํ๋ฉด์ ํ์ํ ๋ ์ฌ์ฉํ๋ "๋์คํ๋ ์ด ํ์ค ์๊ฐ๋" (display timezone)
์๋ฒ ์์ฒด์ ํ์ค ์๊ฐ๋¶
์๋ฒ ์์ฒด์ ํ์ค ์๊ฐ๋๋ ๋ฌด์ํฉ๋๋ค. ์ด๋ค ์๊ฐ๋๋ฅผ ์ฌ์ฉํ๋ ์๊ฐ์ด ํ๋ฆฌ์ง๋ง ์์ผ๋ฉด ๋ฉ๋๋ค.
๋ด๋ถ ํ์ค ์๊ฐ๋¶
๋ด๋ถ ํ์ค ์๊ฐ๋๋ DB์ ๋ ์ง๋ฅผ ์ ์ฅํ ๋๋ ๋ฌผ๋ก , PHP์ date()
ํจ์ ๋ฑ ์๊ฐ๊ณผ ๊ด๋ จ๋ ๋ชจ๋ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ๋ ์ผ๊ด์ฑ์๊ฒ ์ ์ฉ๋ฉ๋๋ค.
์๋ฒ๋ฅผ ์ฎ๊ธฐ๊ฑฐ๋ ์๋จธํ์์ ์ฌ์ฉํ๋๋ผ๋ ์ด๋ฏธ ์ ์ฅ๋ ๋ ์ง๊ฐ ๋ฌ๋ผ์ง๋ ์ผ์ด ์๋๋ก,
๋ด๋ถ ํ์ค ์๊ฐ๋๋ ๋ผ์ด๋ฏน์ค ์ ๊ท ์ค์น ๋๋ XE์์ ์
๊ทธ๋ ์ด๋ํ๋ ์์ ์ ๊ฒฐ์ ๋๋ฉฐ
์ดํ ์ด๋ค ์ผ์ด ์์ด๋ ๋ฐ๋์ง ์์ต๋๋ค.
๋ด๋ถ ํ์ค ์๊ฐ๋๋ locale.internal_timezone
์ค์ ์ ์ ์ฅ๋๋ฉฐ, ๊ด๋ฆฌ์๊ฐ ๋ณ๊ฒฝํ ์๋ ์๊ณ ๋ณ๊ฒฝํ ํ์๋ ์์ต๋๋ค.
์ ๊ท ์ค์น ๋๋ XE์์ ์
๊ทธ๋ ์ด๋ํ ๋ ํ๊ตญ์ด ์ฌ์ดํธ๋ UTC+9 (32400์ด), ๊ทธ ๋ฐ์ ๊ฒฝ์ฐ์๋ UTC (0์ด)๋ก ๊ณ ์ ๋ฉ๋๋ค.
(ํ๊ตญ์ด ์ฌ์ดํธ๋ง ๋ณ๋๋ก ์ทจ๊ธํ๋ ์ด์ ๋ XE์์ ๋๋ถ๋ถ UTC+9๋ก ์ฌ์ฉํด ์๊ธฐ ๋๋ฌธ์ ํธํ์ฑ ์ ์ง๋ฅผ ์ํด์์ด๋ฉฐ,
๋์ด์ ํธํ์ฑ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง ์๋๋ค๊ณ ํ๋จ๋๋ฉด ์ธ์ด์ ๋ฌด๊ดํ๊ฒ UTC๋ก ํต์ผํ ์์ ์
๋๋ค.)
ํ๋ฌ๊ทธ์ธ(๋ชจ๋, ์ ๋์จ ๋ฑ)์์ DB์ ๋ ์ง๋ฅผ ์ ์ฅํ ๋๋ ๋ด๋ถ ํ์ค ์๊ฐ๋๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
date()
, time()
๋ฑ์ PHP ๋ด์ฅ ํจ์, ๊ทธ๋ฆฌ๊ณ ๋ผ์ด๋ฏน์ค์์ ์ ๊ณตํ๋ getInternalDateTime()
ํจ์๋ฅผ ์ฌ์ฉํ์ฌ
๋ด๋ถ ํ์ค ์๊ฐ๋ ๊ธฐ์ค์ ๋ ์ง๋ฅผ ์ป์ ์ ์์ต๋๋ค.
์๊ฐ ์ ์ฅ ํ์์ XE์ ๊ด๋ก๋ฅผ ๋ฐ๋ผ YYYYMMDDHHMMSS
(YmdHis
)๋ฅผ ์ฃผ๋ก ์ฌ์ฉํ์ง๋ง, ์๋ํํฐ ์๋ฃ์์๋ ์ ๋์ค ํ์์คํฌํ๋ฅผ ์ฌ์ฉํด๋ ๋ฌด๋ฐฉํ๋ฉฐ,
๋ผ์ด๋ฏน์ค์์๋ ์ถํ ํ์ค ์๊ฐ๋ ์ฒ๋ฆฌ ํจ์จ์ ๋์ด๊ธฐ ์ํด ์ ๋์ค ํ์์คํฌํ๋ก ๋ณ๊ฒฝํ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค.
(๋จ, ์ ๋์ค ํ์์คํฌํ ์ฌ์ฉ์ 2038๋
์ดํ์ ๋ ์ง๋ฅผ ์ ์์ ์ผ๋ก ํ์ํ๊ธฐ ์ํด ๋ฐ๋์ BIGINT
์๋ฃํ์ผ๋ก ํ
์ด๋ธ์ ๊ตฌ์ฑํ์ฌ์ผ ํฉ๋๋ค.)
๋์คํ๋ ์ด ํ์ค ์๊ฐ๋¶
๋์คํ๋ ์ด ํ์ค ์๊ฐ๋๋ ๋ฌธ์, ๋๊ธ ๋ฑ์ ์์ฑ ์๊ฐ์ ํ๋ฉด์ ํ์ํ ๋ ์ ์ฉ๋๋ ์ค์ ์
๋๋ค.
XE์ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ด๋ฆฌ ๋ชจ๋์์ ์ ํํ ์ ์์ผ๋,
XE์ ๋ฌ๋ฆฌ ์ฌ์ดํธ ์ด์ ๋์ค ๋ณ๊ฒฝํ๋๋ผ๋ ์์ ์ ์์ฑํ ๊ธ์ ๋ ์ง๊ฐ ์๋ชป ํ์๋์ง ์์ต๋๋ค.
๊ด๋ฆฌ์๊ฐ ์ ํํ ๊ธฐ๋ณธ๊ฐ์ locale.default_timezone
์ค์ ์ ์ ์ฅ๋๋ฉฐ, ํ์ฌ๋ ๋ชจ๋ ์ฌ์ฉ์์๊ฒ ์ผ๊ด ์ ์ฉ๋์ง๋ง
์ถํ ํ์๋ง๋ค ์์ ์ด ์ฌ์ฉํ๋ ํ์ค ์๊ฐ๋๋ฅผ ์ ํํ ์ ์๋๋ก ๊ฐ์ ํ ์์ ์
๋๋ค.
(์ง๊ธ๋ $_SESSION['timezone']
์ Asia/Seoul
๊ณผ ๊ฐ์ ํ์ค ์๊ฐ๋ ๋ช
์นญ์ ์ ์ฅํ๋ฉด ํด๋น ์ฌ์ฉ์์ ๋์คํ๋ ์ด ํ์ค ์๊ฐ๋๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
์ค์ ํ๋ฉด์ด ๋ง๋ค์ด์ง์ง ์์์ ๋ฟ์
๋๋ค.)
XE์ ๋ง์ฐฌ๊ฐ์ง๋ก zdate()
ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ด๋ถ ํ์ค ์๊ฐ๋๋ฅผ ๋์คํ๋ ์ด ํ์ค ์๊ฐ๋๋ก ๋ณํํ ์ ์์ต๋๋ค.
์๋จธํ์์ ์ฌ์ฉํ๋ ํ์ค ์๊ฐ๋๋ฅผ ์ ํํ๋๋ผ๋ ํญ์ ์ ํํ๊ฒ ๋ณํ๋ฉ๋๋ค.
ํ ๋ง(๋ ์ด์์, ์คํจ), ์์ ฏ ๋ฑ์์ ํ๋ฉด์ ๋ ์ง๋ฅผ ํ์ํ ๋๋ ๋์คํ๋ ์ด ํ์ค ์๊ฐ๋๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
getDisplayDateTime()
ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋์คํ๋ ์ด ํ์ค ์๊ฐ๋ ๊ธฐ์ค์ ๋ ์ง๋ฅผ ์ป์ ์ ์์ผ๋ฉฐ,
๋ฌธ์์ ๋๊ธ์ getRegdate()
๋ฉ์๋๋ฅผ ์ฌ์ฉํด๋ ๋ฉ๋๋ค.
์์ฝ ๋ฐ ์ ๋ฆฌ¶
- XE์์๋ ์๋ฒ ์์ฒด์ ํ์ค ์๊ฐ๋์ ๊ด๋ฆฌ์๊ฐ ์ง์ ํ ํ์ค ์๊ฐ๋(๋ผ์ด๋ฏน์ค์ "๋์คํ๋ ์ด ํ์ค ์๊ฐ๋"์ ํด๋น)๋ฐ์ ์ฌ์ฉํ์ง ์์๊ธฐ ๋๋ฌธ์,
๋ ์ค ํ๋๊ฐ ๋ณ๊ฒฝ๋ ๊ฒฝ์ฐ ๋ ์ง๊ฐ ์๋ชป ํ์๋๋ ๋ฌธ์ ๊ฐ ์์์ต๋๋ค. - ๋ผ์ด๋ฏน์ค์์๋ ๋ณํ์ง ์๋ "๋ด๋ถ ํ์ค ์๊ฐ๋"๋ฅผ ๊ธฐ์ค์ผ๋ก ์ผ๊ธฐ ๋๋ฌธ์,
์๋ฒ๋ฅผ ์ฎ๊ธฐ๊ฑฐ๋ "๋์คํ๋ ์ด ํ์ค ์๊ฐ๋"๋ฅผ ๋ณ๊ฒฝํ๋๋ผ๋ ํญ์ ์ผ๊ด์ฑ์๋ ๋ ์ง ํ์๋ฅผ ๋ณด์ฅํฉ๋๋ค. - XE์์ ์ฌ์ฉํ๋ ์๊ฐ ๊ด๋ จ ํจ์๋ค๊ณผ PHP ๋ด์ฅ ํจ์๋ค์ ๋ชจ๋ ๊ทธ๋๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ์๋จธํ์ ๋ฑ ๋ณต์กํ ๊ฒ๋ค์ ๋ผ์ด๋ฏน์ค์์ ์๋์ผ๋ก ๊ณ์ฐํด ์ฃผ๋ฏ๋ก, ์ด๋ ํ ๋ณ๋ ์ฒ๋ฆฌ๋ ํ์ํ์ง ์์ต๋๋ค.
- ์๋ํํฐ ์๋ฃ ๊ฐ๋ฐ์ ํ์๋ง๋ค ์๋ก ๋ค๋ฅธ ํ์ค ์๊ฐ๋๋ฅผ ์ฌ์ฉํ ์๋ ์์๋ฅผ ๋ฐ๋์ ๊ธฐ์ตํด์ผ ํฉ๋๋ค.