PHP에서 시간대를 지정하여 현재 날짜를 가져오시겠습니까?
Paul Egert 형식의 표준 시간대를 오늘 날짜로 받고 싶습니다.America/New_York
PHP에서?
다른 답변은 시스템의 모든 날짜에 대한 표준 시간대를 설정합니다.사용자에게 여러 시간대를 지원하려는 경우 이 방법이 항상 제대로 작동하지는 않습니다.
요약 버전은 다음과 같습니다.
<?php
$date = new DateTime("now", new DateTimeZone('America/New_York') );
echo $date->format('Y-m-d H:i:s');
PHP > = 5.2.0에서 작동
지원되는 시간대 목록: php.net/manual/en/timezones.php
사용자 설정에 따라 시간대를 설정하고 기존 시간을 사용하는 버전입니다.
<?php
$usersTimezone = 'America/New_York';
$date = new DateTime( 'Thu, 31 Mar 2011 02:05:59 GMT', new DateTimeZone($usersTimezone) );
echo $date->format('Y-m-d H:i:s');
여기 프로세스를 좀 더 명확하게 보여주기 위해 좀 더 자세한 버전이 있습니다.
<?php
// Date for a specific date/time:
$date = new DateTime('Thu, 31 Mar 2011 02:05:59 GMT');
// Output date (as-is)
echo $date->format('l, F j Y g:i:s A');
// Output line break (for testing)
echo "\n<br />\n";
// Example user timezone (to show it can be used dynamically)
$usersTimezone = 'America/New_York';
// Convert timezone
$tz = new DateTimeZone($usersTimezone);
$date->setTimeZone($tz);
// Output date after
echo $date->format('l, F j Y g:i:s A');
라이브러리
- 카본 - 매우 인기 있는 날짜 라이브러리.
- Chronos – 불변성에 초점을 맞춘 카본 대체품.이것이 중요한 이유에 대해서는, 이하를 참조해 주세요.
- jensegers/date : 다국어 지원을 추가하는 Carbon 확장자.
다른 도서관은 많이 있지만, 제가 잘 알고 있는 도서관도 몇 군데 있을 거예요.
보너스 레슨:불변의 날짜 객체
네가 여기 있는 동안, 내가 너의 미래의 두통을 덜어줄게.예를 들어 오늘부터 1주일 후와 오늘부터 2주 후를 계산하려고 합니다.다음과 같은 코드를 작성할 수 있습니다.
<?php
// Create a datetime (now, in this case 2017-Feb-11)
$today = new DateTime();
echo $today->format('Y-m-d') . "\n<br>";
echo "---\n<br>";
$oneWeekFromToday = $today->add(DateInterval::createFromDateString('7 days'));
$twoWeeksFromToday = $today->add(DateInterval::createFromDateString('14 days'));
echo $today->format('Y-m-d') . "\n<br>";
echo $oneWeekFromToday->format('Y-m-d') . "\n<br>";
echo $twoWeeksFromToday->format('Y-m-d') . "\n<br>";
echo "\n<br>";
출력:
2017-02-11
---
2017-03-04
2017-03-04
2017-03-04
음...그건 우리가 원한게 아니야.기존 변경DateTime
PHP의 오브젝트는 갱신된 날짜를 반환할 뿐만 아니라 원래 오브젝트도 수정합니다.
여기가 바로 그 장소입니다DateTimeImmutable
들어옵니다.
$today = new DateTimeImmutable();
echo $today->format('Y-m-d') . "\n<br>";
echo "---\n<br>";
$oneWeekFromToday = $today->add(DateInterval::createFromDateString('7 days'));
$twoWeeksFromToday = $today->add(DateInterval::createFromDateString('14 days'));
echo $today->format('Y-m-d') . "\n<br>";
echo $oneWeekFromToday->format('Y-m-d') . "\n<br>";
echo $twoWeeksFromToday->format('Y-m-d') . "\n<br>";
출력:
2017-02-11
---
2017-02-11
2017-02-18
2017-02-25
이 두 번째 예에서는 기대했던 날짜가 반환됩니다.사용방법DateTimeImmutable
대신DateTime
우발적인 상태 돌연변이를 방지하고 잠재적인 버그를 방지합니다.
먼저 기본 시간대를 설정하고 날짜를 가져옵니다. 그러면 지정한 시간대에 날짜가 지정됩니다.
<?php
date_default_timezone_set('America/New_York');
$date= date('m-d-Y') ;
?>
http://php.net/manual/en/function.date-default-timezone-set.php
시간을 임의의 시간대로 변환하기 위해 사용할 수 있는 간단한 함수를 만들었습니다.
function convertTimeToLocal($datetime,$timezone='Europe/Dublin') {
$given = new DateTime($datetime, new DateTimeZone("UTC"));
$given->setTimezone(new DateTimeZone($timezone));
$output = $given->format("Y-m-d"); //can change as per your requirement
return $output;
}
PHP 5.3에 액세스 할 수 있는 경우, intl 확장은 이러한 작업에 매우 적합합니다.
다음은 설명서의 예입니다.
$fmt = new IntlDateFormatter( "en_US" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
'America/Los_Angeles',IntlDateFormatter::GREGORIAN );
$fmt->format(0); //0 for current time/date
고객의 경우 다음 작업을 수행할 수 있습니다.
$fmt = new IntlDateFormatter( "en_US" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
'America/New_York');
$fmt->format($datetime); //where $datetime may be a DateTime object, an integer representing a Unix timestamp value (seconds since epoch, UTC) or an array in the format output by localtime().
다음과 같은 표준 시간대를 설정할 수 있습니다.America/New_York
이것은 GMT 또는 UTC 오프셋을 사용하는 것보다 훨씬 좋습니다.이는 주간광 절약 기간도 고려하기 때문입니다.
마지막으로, intl 확장자는 ICU 데이터를 사용하기 때문에, 독자적인 날짜/시간 형식을 작성할 때 매우 유용한 기능이 많이 포함되어 있습니다.
<?php
date_default_timezone_set('GMT-5');//Set New York timezone
$today = date("F j, Y")
?>
언급URL : https://stackoverflow.com/questions/8006692/get-current-date-given-a-timezone-in-php
'itsource' 카테고리의 다른 글
레퍼런스 요건setuptools setup.py 파일의 install_displays kwarg에 대한 txt (0) | 2022.11.14 |
---|---|
MySQL에서 날짜/시간에서 시간을 빼는 방법 (0) | 2022.11.14 |
Larabel 5 – URL에서 공개 삭제 (0) | 2022.11.14 |
파일 확장자는 어떻게 확인할 수 있나요? (0) | 2022.11.14 |
RegExp를 사용하는 문자열에서 SQL 추출 패턴 (0) | 2022.11.14 |