>백엔드 개발 >PHP 튜토리얼 >PHP 타임스탬프 기능에 대한 자세한 설명

PHP 타임스탬프 기능에 대한 자세한 설명

小云云
小云云원래의
2018-03-29 16:22:362792검색

이 글은 주로 코드 형식으로 PHP 타임스탬프 기능에 대한 자세한 설명을 공유합니다.

echo "최후의 날 타임스탬프는 다음과 같습니다.".strtotime("2012-12-21")

2. 타임스탬프를 시스템 시간으로 변환

date('Y-m-d H:i:s',"1228348800");

(1) 오늘의 0시 타임스탬프 가져오기

$timetoday = strtotime(date("Y-m-d",time()));

(2) 내일 0시에 타임스탬프를 가져옵니다

$tomorrow = $timetoday + 3600*24;

3. 영어 텍스트 날짜와 시간을 가져오는 PHP 타임스탬프 함수의 예는 다음과 같습니다.

간단한 비교를 위해 날짜를 사용하여 현재를 변환합니다. timestamp 및 지정된 타임스탬프를 시스템 시간으로 인쇄

(1) 내일 인쇄 이 시간의 타임스탬프 strtotime("+1 day")

//当前时间
echo date("Y-m-d H:i:s",time());
//明天此时时间
echo date("Y-m-d H:i:s",strtotime("+1 day"));

(2) 어제 이 시간의 타임스탬프를 인쇄 strtotime("-1 day")

//当前时间
echo date("Y-m-d H:i:s",time()) ;
//指定时间
echo date("Y-m-d H:i:s",strtotime("-1 day"));

(3) 다음 주 이 시간에 타임스탬프를 인쇄합니다. strtotime ("+1 week")

//当前时间
echo date("Y-m-d H:i:s",time());
//下星期时间
echo date("Y-m-d H:i:s",strtotime("+1 week"));

(4) 지난 주 이 시간에 타임스탬프를 인쇄합니다. strtotime("-1 week")

//当前时间
echo date("Y-m-d H:i:s",time());
//上个星期此时时间
echo date("Y-m-d H:i:s",strtotime("-1 week"));

(5) 다음 주의 지정된 요일의 타임스탬프를 인쇄합니다. strtotime("next 목요일" )

//当前时间
echo date("Y-m-d H:i:s",time());
//下星期几时间
echo date("Y-m-d H:i:s",strtotime("next Thursday"));

(6) 지정된 요일의 타임스탬프를 인쇄합니다. strtotime("last 목요일")

//当前时间
echo date("Y-m-d H:i:s",time());
//指定时间
echo date("Y-m-d H:i:s",strtotime("last Thursday"));

에서 알 수 있듯이 위의 PHP 타임스탬프 함수 예에서 strtotime은 영어 텍스트의 날짜 및 시간 설명을 Unix 타임스탬프로 구문 분석할 수 있습니다. mktime() 또는 date()를 결합하여 필요한 날짜 및 시간을 얻기 위해 지정된 타임스탬프를 얻기 위해 날짜 및 시간 형식을 지정합니다. . 다른 사람들이 작성한 이러한 기능을 보고 테스트해 보았습니다. 몇 가지 사소한 문제가 있습니다. 섣달 그믐 날에는 표시 연도가 없습니다. 다음과 같이 수정하세요

function mdate($time = NULL) {
    $text = '';
    $time = $time === NULL || $time > time() ? time() : intval($time);
    $t = time() - $time; //时间差 (秒)
    $y = date('Y', $time)-date('Y', time());//是否跨年
    switch($t){
     case $t == 0:
       $text = '刚刚';
       break;
     case $t < 60:
      $text = $t . &#39;秒前&#39;; // 一分钟内
      break;
     case $t < 60 * 60:
      $text = floor($t / 60) . &#39;分钟前&#39;; //一小时内
      break;
     case $t < 60 * 60 * 24:
      $text = floor($t / (60 * 60)) . &#39;小时前&#39;; // 一天内
      break;
     case $t < 60 * 60 * 24 * 3:
      $text = floor($time/(60*60*24)) ==1 ?&#39;昨天 &#39; . date(&#39;H:i&#39;, $time) : &#39;前天 &#39; . date(&#39;H:i&#39;, $time) ; //昨天和前天
      break;
     case $t < 60 * 60 * 24 * 30:
      $text = date(&#39;m月d日 H:i&#39;, $time); //一个月内
      break;
     case $t < 60 * 60 * 24 * 365&&$y==0:
      $text = date(&#39;m月d日&#39;, $time); //一年内
      break;
     default:
      $text = date(&#39;Y年m月d日&#39;, $time); //一年以前
      break;
    }
        
    return $text;
}

ThinkPHP에서:

작성된 함수를 Common 폴더에 넣어주세요. 시스템이 자동으로 로드합니다.

이 common.php 페이지에 넣으면 common.php는 자체 형식이 있으므로 이름을 변경하지 마세요.


템플릿에서 직접

{$vo.time|mdate}

를 호출하세요. 예 2, 더 간단한 것

function formatDate($sTime) {
 //sTime=源时间,cTime=当前时间,dTime=时间差
 $cTime  = time();
 $dTime  = $cTime - $sTime;
 $dDay  = intval(date("Ymd",$cTime)) - intval(date("Ymd",$sTime));
 $dYear  = intval(date("Y",$cTime)) - intval(date("Y",$sTime));
 if( $dTime < 60 ){
  $dTime =  $dTime."秒前";
 }elseif( $dTime < 3600 ){
  $dTime =  intval($dTime/60)."分钟前";
 }elseif( $dTime >= 3600 && $dDay == 0  ){
  $dTime =  "今天".date("H:i",$sTime);
 }elseif($dYear==0){
  $dTime =  date("m-d H:i",$sTime);
 }else{
  $dTime =  date("Y-m-d H:i",$sTime);
 }
 return $dTime;
}

다음은 모든 사람에게 시간 친화적인 방법입니다.

/**
 * 友好时间显示
 * @param $time
 * @return bool|string
 */
function friend_date($time)
{
    if (!$time)
        return false;
    $fdate = &#39;&#39;;
    $d = time() - intval($time);
    $ld = $time - mktime(0, 0, 0, 0, 0, date(&#39;Y&#39;)); //得出年
    $md = $time - mktime(0, 0, 0, date(&#39;m&#39;), 0, date(&#39;Y&#39;)); //得出月
    $byd = $time - mktime(0, 0, 0, date(&#39;m&#39;), date(&#39;d&#39;) - 2, date(&#39;Y&#39;)); //前天
    $yd = $time - mktime(0, 0, 0, date(&#39;m&#39;), date(&#39;d&#39;) - 1, date(&#39;Y&#39;)); //昨天
    $dd = $time - mktime(0, 0, 0, date(&#39;m&#39;), date(&#39;d&#39;), date(&#39;Y&#39;)); //今天
    $td = $time - mktime(0, 0, 0, date(&#39;m&#39;), date(&#39;d&#39;) + 1, date(&#39;Y&#39;)); //明天
    $atd = $time - mktime(0, 0, 0, date(&#39;m&#39;), date(&#39;d&#39;) + 2, date(&#39;Y&#39;)); //后天
    if ($d == 0) {
        $fdate = &#39;刚刚&#39;;
    } else {
        switch ($d) {
            case $d < $atd:
                $fdate = date(&#39;Y年m月d日&#39;, $time);
                break;
            case $d < $td:
                $fdate = &#39;后天&#39; . date(&#39;H:i&#39;, $time);
                break;
            case $d < 0:
                $fdate = &#39;明天&#39; . date(&#39;H:i&#39;, $time);
                break;
            case $d < 60:
                $fdate = $d . &#39;秒前&#39;;
                break;
            case $d < 3600:
                $fdate = floor($d / 60) . &#39;分钟前&#39;;
                break;
            case $d < $dd:
                $fdate = floor($d / 3600) . &#39;小时前&#39;;
                break;
            case $d < $yd:
                $fdate = &#39;昨天&#39; . date(&#39;H:i&#39;, $time);
                break;
            case $d < $byd:
                $fdate = &#39;前天&#39; . date(&#39;H:i&#39;, $time);
                break;
            case $d < $md:
                $fdate = date(&#39;m月d日 H:i&#39;, $time);
                break;
            case $d < $ld:
                $fdate = date(&#39;m月d日&#39;, $time);
                break;
            default:
                $fdate = date(&#39;Y年m月d日&#39;, $time);
                break;
        }
    }
    return $fdate;
}

관련 권장 사항:

PHP 자세히 설명된 현재 타임스탬프 기능 가져오기

위 내용은 PHP 타임스탬프 기능에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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