Maison  >  Article  >  développement back-end  >  Explication détaillée de la fonction d'horodatage PHP

Explication détaillée de la fonction d'horodatage PHP

小云云
小云云original
2018-03-29 16:22:362655parcourir

Cet article partage principalement avec vous l'explication détaillée de la fonction d'horodatage PHP, principalement sous forme de code, j'espère qu'il pourra vous aider.

echo "L'horodatage de la fin du monde est : ".strtotime("2012-12-21")

2. Convertissez l'horodatage en heure système

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

(1) Obtenez l'horodatage zéro heure d'aujourd'hui

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

(2) Obtenez l'horodatage zéro heure de demain

$tomorrow = $timetoday + 3600*24;

3 Fonction d'horodatage .PHP pour obtenir la date du texte anglais. Les exemples d'heure sont les suivants :

À titre de comparaison, utilisez la date pour convertir l'horodatage actuel et l'horodatage spécifié en heure système

(1) Imprimez le timestamp à cette heure demain strtotime("+1 day" )

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

(2) Imprimer l'horodatage de l'heure d'hier strtotime(”-1 day”)

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

(3 ) Imprimer l'horodatage de l'heure de la semaine prochaine strtotime ("+1 semaine")

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

(4) Imprimer l'horodatage à cette heure de la semaine dernière strtotime("-1 semaine")

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

(5) Imprimer l'horodatage spécifié du jour suivant de la semaine strtotime("jeudi prochain")

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

(6) Imprimer l'horodatage du jour spécifié de la semaine strtotime("dernier Jeudi")

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

et ci-dessus Comme le montre l'exemple de fonction d'horodatage PHP, strtotime peut analyser la description de la date et de l'heure de n'importe quel texte anglais dans un horodatage Unix. Nous combinons mktime() ou date( ) pour formater la date et l'heure afin d'obtenir l'horodatage spécifié pour obtenir la date et l'heure requises

J'ai vu une telle fonction écrite par quelqu'un d'autre et je l'ai testée. Il y a quelques problèmes mineurs : pour les dates du réveillon du Nouvel An, l'année n'est pas affichée. Modifiez comme suit

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;
}

Dans ThinkPHP :

Mettez la fonction écrite dans le dossier Common. Le système le chargera automatiquement.
Mettez-le dans cette page common.php, common.php a son propre format, ne changez pas le nom.

Appelez directement

{$vo.time|mdate}

dans le modèle Exemple 2, un plus simple

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;
}

Voici une méthode plus rapide pour tout le monde

/**
 * 友好时间显示
 * @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;
}

Recommandations associées :

Explication détaillée de la fonction PHP pour obtenir l'horodatage actuel

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn