>백엔드 개발 >PHP 튜토리얼 >PHP에서 타임스탬프를 'Time Ago' 문자열로 어떻게 변환할 수 있나요?

PHP에서 타임스탬프를 'Time Ago' 문자열로 어떻게 변환할 수 있나요?

Linda Hamilton
Linda Hamilton원래의
2024-12-31 07:58:22270검색

How Can I Convert Timestamps to

PHP에서 타임스탬프를 이전 시간 문자열로 변환

타임스탬프를 상대 시간 문자열로 변환하는 것은 정보를 보다 사용자 친화적인 형식으로 표시하는 데 유용할 수 있습니다. PHP에는 이를 달성하는 데 사용할 수 있는 여러 함수와 접근 방식이 있습니다.

한 가지 인기 있는 접근 방식은 strtotime() 함수를 사용하여 타임스탬프의 문자열 표현을 Unix 타임스탬프 형식(초 수)으로 변환하는 것입니다. Unix 시대(1970년 1월 1일 00:00:00 UTC) 이후). 그런 다음 gmdate() 또는 date()와 같은 함수를 사용하여 Unix 타임스탬프 형식을 지정할 수 있습니다. 이는 타임스탬프가 일반적인 형식이 아닌 경우 유용할 수 있습니다.

또는 DateTime() 클래스를 사용하여 변환할 수 있습니다. 타임스탬프나 날짜 문자열을 PHP DateTime 객체로 변환합니다. DateTime 클래스는 날짜와 시간을 조작하고 형식을 지정하기 위한 다양한 메서드를 제공합니다. 타임스탬프를 나타내는 DateTime 객체를 현재 시간과 비교하여 경과 시간을 계산하고 상대 시간 문자열을 구성할 수 있습니다.

다음은 DateTime 클래스를 사용하여 타임스탬프를 이전 문자열로 변환하는 함수 예제입니다. :

function time_elapsed_string($datetime, $full = false) {
    $now = new DateTime;
    $ago = new DateTime($datetime);
    $diff = $now->diff($ago);

    $diff->w = floor($diff->d / 7);
    $diff->d -= $diff->w * 7;

    $string = array(
        'y' => 'year',
        'm' => 'month',
        'w' => 'week',
        'd' => 'day',
        'h' => 'hour',
        'i' => 'minute',
        's' => 'second',
    );
    foreach ($string as $k => &$v) {
        if ($diff->$k) {
            $v = $diff->$k . ' ' . $v . ($diff->$k > 1 ? 's' : '');
        } else {
            unset($string[$k]);
        }
    }

    if (!$full) $string = array_slice($string, 0, 1);
    return $string ? implode(', ', $string) . ' ago' : 'just now';
}

이 함수는 타임스탬프 또는 날짜 문자열을 인수로 사용하고 상대 시간 문자열을 반환합니다. $full 인수를 true로 설정하면 관련된 모든 시간 단위를 포함하는 보다 자세한 문자열을 얻을 수 있습니다. 그렇지 않으면 가장 큰 관련 시간 단위만 포함됩니다.

사용 예:

echo time_elapsed_string('2013-05-01 00:22:35');
echo time_elapsed_string('@1367367755'); # timestamp input
echo time_elapsed_string('2013-05-01 00:22:35', true);

출력:

4 months ago
4 months ago
4 months, 2 weeks, 3 days, 1 hour, 49 minutes, 15 seconds ago

이 기능은 간단하고 사용자 정의 가능한 방법을 제공합니다. PHP에서 타임스탬프를 상대 시간 문자열로 변환합니다. 이를 사용하면 사용자에게 시간에 민감한 정보를 명확하고 간결하게 표시할 수 있습니다.

위 내용은 PHP에서 타임스탬프를 'Time Ago' 문자열로 어떻게 변환할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.