>  기사  >  백엔드 개발  >  PHP의 Unix 타임스탬프에서 상대 날짜/시간 문자열을 어떻게 생성할 수 있습니까?

PHP의 Unix 타임스탬프에서 상대 날짜/시간 문자열을 어떻게 생성할 수 있습니까?

DDD
DDD원래의
2024-11-26 21:55:10668검색

How Can I Generate Relative Date/Time Strings from Unix Timestamps in PHP?

PHP의 타임스탬프에서 상대 날짜/시간 생성

소개

상대 날짜 결정 타임스탬프를 기반으로 하는 /time은 프로그래밍에서 일반적인 작업입니다. 이 기능은 다양한 시간 간격과 변환 방향(과거 또는 미래)을 고려할 때 더욱 복잡해집니다.

답변

아래 기능은 변환에 대한 포괄적인 접근 방식을 제공합니다. Unix 타임스탬프(time() 함수를 사용하여 얻음)를 과거와 미래를 모두 고려하는 상대 날짜/시간 형식으로 변환합니다. 다음과 같은 출력이 생성됩니다.


  • 2주 전

  • 1시간 60분 전

  • 15분 54초 이전
  • 10분 15초 후

이 함수는 일련의 조건문을 사용하여 적절한 시간 표현을 결정합니다. 현재 시간과 현재 시간의 차이를 기준으로 타임스탬프:

<br>function time2str($ts)<br>{</p>
<pre class="brush:php;toolbar:false">// Handle syntax variations
if(!ctype_digit($ts)) $ts = strtotime($ts);

// Calculate the difference between now and the timestamp
$diff = time() - $ts;

// Check for exact matches to simplify handling
if($diff == 0) return 'now';

// Handle past timestamps
if($diff > 0)
{
    // Calculate day difference
    $day_diff = floor($diff / 86400);

    // Format past time intervals
    switch(true)
    {
        case ($day_diff == 0):    return constructPastInterval($diff); // Hours, minutes, seconds
        case ($day_diff == 1):    return 'Yesterday';
        case ($day_diff < 7):    return $day_diff . ' days ago';
        case ($day_diff < 31):   return ceil($day_diff / 7) . ' weeks ago';
        case ($day_diff < 60):   return 'last month';
        default:               return date('F Y', $ts);
    }
}
// Handle future timestamps
else
{
    // Calculate absolute difference
    $diff = abs($diff);
    
    // Calculate day difference and format future time intervals based on logic similar to the past case.
}

}

constructorPastInterval() 함수는 이 응답에 표시되지 않지만 과거 간격(시간, 분, 초).

이 함수는 타임스탬프에서 상대 날짜/시간 표현을 생성하기 위한 강력하고 다양한 솔루션을 제공하므로 여러 스크립트나 복잡한 사용자 정의 코딩이 필요하지 않습니다.

위 내용은 PHP의 Unix 타임스탬프에서 상대 날짜/시간 문자열을 어떻게 생성할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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