programing

PHP에서 datetime을 ISO 8601로 변환하는 방법

bestcode 2022. 12. 27. 21:19
반응형

PHP에서 datetime을 ISO 8601로 변환하는 방법

시간을 변환하려면 어떻게 해야 하나요?2010-12-30 23:21:46ISO 8601 날짜 형식으로? (-_-;)

객체 지향

이것이 권장되는 방법입니다.

$datetime = new DateTime('2010-12-30 23:21:46');

echo $datetime->format(DateTime::ATOM); // Updated ISO8601

절차

이전 버전의 PHP 또는 절차 코드가 더 익숙한 경우.

echo date(DATE_ISO8601, strtotime('2010-12-30 23:21:46'));

PHP 5 이후에는 다음을 사용할 수 있습니다.echo date("c");ISO 8601 형식의 날짜/시간을 구성합니다.

http://ideone.com/nD7piL

코멘트 주의사항:

이것에 관해서는, 다음의 양쪽의 표현은, 타임 존에 대해서, 기본적인 형식에 대해서 유효합니다.±[hh]:[mm], ±[hh][mm], or ±[hh].

단, +0X:00는 올바른 값이고 +0X00은 연장 사용 시 올바르지 않습니다.그래서 사용하는 것이 좋다.date("c")여기에서도 비슷한 논의가 있습니다.

ISO 8601에서 unixtimestamp로 변환하는 방법:

strtotime('2012-01-18T11:45:00+01:00');
// Output : 1326883500

unixtimestamp에서 ISO 8601(타임존 서버)로 변환하는 방법:

date_format(date_timestamp_set(new DateTime(), 1326883500), 'c');
// Output : 2012-01-18T11:45:00+01:00

unixtimestamp에서 ISO 8601(GMT)로 변환하는 방법:

date_format(date_create('@'. 1326883500), 'c') . "\n";
// Output : 2012-01-18T10:45:00+00:00

unixtimestamp에서 ISO 8601(커스텀 시간대)로 변환하는 방법:

date_format(date_timestamp_set(new DateTime(), 1326883500)->setTimezone(new DateTimeZone('America/New_York')), 'c');
// Output : 2012-01-18T05:45:00-05:00

datetime-local 값을 설정하려고 하면

date("Y-m-d\TH:i",strtotime('2010-12-30 23:21:46'));

//output : 2010-12-30T23:21

PHP 공식 문서에 따르면 다음과 같이 포맷할 수 있습니다.

echo $objDateTime->format('c'); // ISO8601 formated datetime
echo $objDateTime->format(DateTime::ISO8601); // Another way to get an ISO8601 formatted string

ISO 8601은 기본적으로 PHP에서 다음과 같이 표시됩니다."Y-m-d\TH:i:sP"

이 값은 상수에서 얻을 수 있습니다.

DateTime::ATOM- PHP 버전이 7.2보다 낮은 경우(삭제됨)

DateTimeInterface::ATOM- 7.2 이후 PHP 버전용

다음과 같이 시험해 볼 수 있습니다.

$datetime = new DateTime('2010-12-30 23:21:46');

echo $datetime->format(DATE_ATOM);

$datetime->format('Y-m-d\TH:i:s.u\Z')는 적절한 포맷과 "T" 구분자, "Z" 시간대(먼저 UTC로 변환해야 함) 및 마이크로초( 생략)를 지정해야 합니다..u소수 초수를 지원하지 않는 경우)

를 사용하는 이유에 대해서는, https://stackoverflow.com/a/9532375/65387 를 참조해 주세요.T

이렇게 모달 내부 변환을 통해 타임스탬프 변환을 얻을 수도 있습니다.

class YourModal extends Model
{
    public function getCreatedAtAttribute($date)
    {
        return date(DATE_ISO8601, strtotime($date)); // ISO 8601 Date Format
    }
}

언급URL : https://stackoverflow.com/questions/5322285/how-do-i-convert-datetime-to-iso-8601-in-php

반응형