// date()와 동일하고 마지막에 timezone 파라미터를 하나 더 받아 처리할 수 있음
function _date($format, $timestamp=false, $timezone=false)
{
$timestamp = $timestamp ? $timestamp : time();
$timezone = $timezone ? $timezone : date_default_timezone_get();
try {
$dt = new DateTime('now', new DateTimeZone($timezone));
} catch (Exception $e) {
// timezone 세팅에 문제가 있을 경우 그냥 date() 반환
return date($format, $timestamp);
}
$dt->setTimestamp($timestamp);
return $dt->format($format);
}
$tzList = [
date_default_timezone_get(),
'Asia/Seoul',
'Asia/Singapore',
'Asia/Ho_Chi_Minh',
'Asia/Bangkok',
'America/Los_Angeles',
'America/New_York',
'Europe/London',
'Europe/Paris',
'Asia/Srednekolymsk',
'invalid timezone' // 비정상 timezone
];
$ts = time();
foreach ($tzList as $tz) {
printf("%-17s\t%s\n", $tz, _date('Y-m-d H:i:s', $ts, $tz));
}
// 결과값은 아래와 같음
Asia/Seoul 2020-06-02 15:29:57
Asia/Seoul 2020-06-02 15:29:57
Asia/Singapore 2020-06-02 14:29:57
Asia/Ho_Chi_Minh 2020-06-02 13:29:57
Asia/Bangkok 2020-06-02 13:29:57
America/Los_Angeles 2020-06-01 23:29:57
America/New_York 2020-06-02 02:29:57
Europe/London 2020-06-02 07:29:57
Europe/Paris 2020-06-02 08:29:57
Asia/Srednekolymsk 2020-06-02 17:29:57
invalid timezone 2020-06-02 15:29:57
'PHP' 카테고리의 다른 글
[PHP] curl -v(verbose) 옵션 세팅 및 결과 확인하기 (0) | 2020.08.11 |
---|---|
[PHP] heredoc 내부에서 함수 호출하기 (calling function inside heredoc) (0) | 2020.07.14 |
[PHP] / 하나로 범위주석 로직 빠르게 전환하기 (2) | 2020.05.28 |
[PHP] application/json으로 넘어온 데이터 파싱 (parse data passing by header Content-Type application/json) (2) | 2020.03.02 |
[PHP] json_encode()시 빈 오브젝트 만들기 (json_encode() returns empty object, not array) (2) | 2020.02.12 |