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

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

小云云
Libérer: 2023-03-22 17:20:02
original
2788 Les gens l'ont consulté

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");
Copier après la connexion

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

$timetoday = strtotime(date("Y-m-d",time()));
Copier après la connexion

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

$tomorrow = $timetoday + 3600*24;
Copier après la connexion

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"));
Copier après la connexion

(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"));
Copier après la connexion

(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"));
Copier après la connexion

(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"));
Copier après la connexion

(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"));
Copier après la connexion

(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"));
Copier après la connexion

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;
}
Copier après la connexion

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}
Copier après la connexion

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;
}
Copier après la connexion

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;
}
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal