Maison  >  Article  >  développement back-end  >  Un tas d'opérations de date et d'heure en php

Un tas d'opérations de date et d'heure en php

步履不停
步履不停original
2019-06-06 11:47:584282parcourir

Un tas dopérations de date et dheure en php

下载 (1).jpg

Formater la date et l'heure

date : format Date et l'heure

  • Scène

Formater la date et l'heure actuelles ou une date et une heure spécifiques La sortie est une chaîne dans un format spécifique, souvent utilisée pour l'affichage humanisé des informations

  • Description

<.>Retour à La chaîne de date et d'heure générée après le formatage de l'horodatage fixe Si aucun horodatage n'est donné, l'heure locale actuelle sera utilisée par défaut

  • Remarques

    • Formats courants

    // 形如 2019-05-31 12:00:00echo date("Y-m-d H:i:s");
    // 形如 2019/05/31 12:00:00echo date("Y/m/d H:i:s");
    // 形如 2019年05月31日 12时00分00秒echo date("Y年m月d日 H时i分s秒");
    • Exemple

    <?php
    // 设置当前时区为上海时区
    date_default_timezone_set("Asia/Shanghai");
    
    // 获取当前时区 : Asia/Shanghai
    echo "当前时区 : ".date_default_timezone_get()."<br/>";
    
    // `Y年m月d日 H时i分s秒` 格式化当前时间 : 2019年05月30日 22时32分46秒
    echo "当前时间 : ".date("Y年m月d日 H时i分s秒")."<br/>";
    
    // `Y-m-d H:i:s` 格式化当前时间 : 2019-05-30 22:32:46
    echo "当前时间 : ".date("Y-m-d H:i:s")."<br/>";
    
    // `w` 星期中的第几天,数字表示: 0(表示星期天)到 6(表示星期六)
    switch (date("w")) {    
        case &#39;0&#39;:
            $dayStr = "日";        
            break;    
        case &#39;1&#39;:
        $dayStr = "一";        
        break;    
      case &#39;2&#39;:
        $dayStr = "二";        
        break;    
      case &#39;3&#39;:
        $dayStr = "三";      
        break;   
      case &#39;4&#39;:
        $dayStr = "四";        
        break;    
      case &#39;5&#39;:
        $dayStr = "五";        
        break;    
      case &#39;6&#39;:
        $dayStr = "六";        
        break;    
      default:
        $dayStr = "未知";        
        break;
    } 
    // 2019年05月30日 星期四
    echo "当前时间 : ".date("Y年m月d日")." 星期".$dayStr."<br/>";
    echo "<hr/>";
    
    // `z` 年份中的第几天 : 今天是全年的第149天
    echo "今天是全年的第".date("z")."天<br/>";
    
    // `W` ISO-8601 格式年份中的第几周,每周从星期一开始 : 本周是全年的第22周
    echo "本周是全年的第".date("W")."周<br/>";
    
    // `t` 指定的月份有几天 : 本月共有31天
    echo "本月共有".date("t")."天<br/>";
    ?>

    Horodatage de conversion de date

    time : renvoie l'horodatage Unix actuel

    • Scénario

    Obtenez l'horodatage de la date et de l'heure actuelles ou d'une date et d'une heure spécifiques, souvent utilisées pour la conversion entre les dates et les heures.

    • Explication

    Renvoie l'heure depuis l'époque Unix (1er janvier 1970 00:00:00 GMT) à l'heure actuelle Secondes.

    • Exemple

    <?php
    // 设置当前时区为上海时区
    date_default_timezone_set("Asia/Shanghai");
    
    // 获取当前时区
    echo "当前时区 : ".date_default_timezone_get()."<br/>";
    
    // 一周前的日期时间: 7 days; 24 hours; 60 mins; 60 
    secs$preWeek = time() - (7 * 24 * 60 * 60);
    echo "现在是".date("Y-m-d H:i:s").",上周是".date("Y-m-d H:i:s",$preWeek)."<br/>";
    
    // 一周后的日期时间: 7 days; 24 hours; 60 mins; 60 secs
    $nextWeek = time() + (7 * 24 * 60 * 60);
    echo "现在是".date("Y-m-d H:i:s").",下周是".date("Y-m-d H:i:s",$nextWeek)."<br/>";
    ?>

    microtime : renvoie l'horodatage Unix actuel et microsecondes

    • Scénario

    Obtenez l'heure de la date/heure actuelle ou d'une date/heure spécifique Tampon, souvent utilisé pour l'analyse ponctuelle du processus en cours d'exécution du programme, et peut également être utilisé pour la conversion entre les dates et les heures

    • Explication

    .

    L'horodatage Unix actuel et les microsecondes. Cette fonction n'est disponible que sous les systèmes d'exploitation qui prennent en charge l'appel système `gettimeofday()``.

    • Exemple

    <?php
    
    // 设置当前时区为上海时区
    date_default_timezone_set("Asia/Shanghai");
    
    // 获取当前时区
    cho "当前时区 : ".date_default_timezone_get()."<br/>";
    
    // 当前日期时间戳
    echo "当前日期时间戳: ".time()." <--> ".microtime()." <--> ".microtime(TRUE)."<br/>";
    
    ?>

    mktime : Obtenez l'horodatage Unix d'une date

    • Scénario

    Obtenez l'horodatage d'une date donnée, analysez-le séquentiellement selon le format "heure, minute, seconde, mois, jour, année" et renvoyez l'horodatage.

    • Description

    Renvoyer l'horodatage Unix en fonction des paramètres donnés.

    • Remarques

    格式 说明 参数示例
    H hour 小时数 00 到 23
    i minute 分钟数 00 到 59
    s second 秒数 00 到 59
    n month 月份数 01 到 12
    j day 天数 01 到 31
    Y year 年份数,可以是两位或四位数字 0-69 对应于 2000-2069 ,70-100 对应于 1970-2000

    格式: 时分秒 月日年,支持从右往左依次省略,被省略的值取当前时间的对应值.

    • 示例

    <?php
    // 设置当前时区为上海时区
    date_default_timezone_set("Asia/Shanghai");
    
    // 获取当前时区
    echo "当前时区 : ".date_default_timezone_get()."<br/>"; 
    
    // 指定日期时间戳: 时分秒 月日年 : 1559275200 <--> 2019-05-31 12:00:00
    echo "2019年05月31日 12:00:00 的时间戳: ".mktime(12,0,0,5,31,2019)." <--> ".date("Y-m-d H:i:s", mktime(12,0,0,5,31,2019))."<br/>"; 
    
    // 距离国庆节还有多少天,单位秒 : 今天是2019-05-31,距离国庆节还剩122天
    $nationalDay = mktime(0,0,0,10,1,2019);
    $currentDay = time();
    $remainingDay = floor(abs($nationalDay - $currentDay)/(24*3600));
    echo "今天是".date("Y-m-d").",距离国庆节还剩".$remainingDay."天<br/>";
    ?>

    strtotime : 将任何字符串的日期时间描述解析为 Unix 时间戳

    • 场景

    将英文日期解析成时间戳,比直接解析日期方便,采用自然语义而不是编程语言进行转换日期.

    • 说明

    本函数预期接受一个包含美国英语日期格式的字符串并尝试将其解析为 Unix 时间戳(自 January 1 1970 00:00:00 GMT 起的秒数,其值相对于 now 参数给出的时间,如果没有提供此参数则用系统当前时间.

    • 常用格式

    // 2019-06-02
    echo date("Y-m-d", strtotime("2019-05-31 +2 days"));
    
    // 2019-07-01
    echo date("Y-m-d", strtotime("2019-05-31 +1 month"));
    
    // 2019-06-09
    echo date("Y-m-d", strtotime("2019-05-31 +1 week 2 days 4 hours 2 seconds"));
    • 示例

    <?php
    // 设置当前时区为上海时区
    date_default_timezone_set("Asia/Shanghai");
    
    // 获取当前时区
    echo "当前时区 : ".date_default_timezone_get()."<br/>";
    
    // 当前日期时间戳
    echo "当前日期时间戳: ".time()." <--> ".strtotime("now")." <--> ".date("Y-m-d H:i:s", strtotime("now"))."<br/>";
    
    // 一周后的日期时间: 7 days; 24 hours; 60 mins; 60 secs
    $nextWeek = time() + (7 * 24 * 60 * 60);
    echo "现在是".date("Y-m-d H:i:s").",下周是".date("Y-m-d H:i:s",$nextWeek)." <--> ".date("Y-m-d H:i:s",strtotime("+1 week"))."<br/>";
    
    echo "现在是".date("Y-m-d H:i:s").",1周2天4小时2秒是".date("Y-m-d H:i:s",strtotime("+1 week 2 days 4 hours 2 seconds"))."<br/>";
    
    echo "现在是".date("Y-m-d H:i:s").",下周三是".date("Y-m-d H:i:s",strtotime("next Thursday"))."<br/>";
    ?>


    日期时间函总结

    日期时间函数库是 php 内置的函数库,默认情况下已启用,值得注意的是,日期时间和时区有关,建议首先设置下时区.

    纵观日期时间的操作方法,总的来说,可以大致分为两类,一类是给计算机用的,另一类是给人看的.

    • 给人看的

    date_default_timezone_set("Asia/Shanghai") : 设置当前脚本使用的时区date("Y-m-d H:i:s") : 格式化日期时间date("Y-m-d", strtotime("2019-05-31 +2 days")) : 格式化英文描述的日期时间

    • 给计算机用的

    time() : 当前时间的秒数microtime() : 当前时间的秒数和微秒数strtotime() : 将字符串形式的日期时间转换成时间戳

    最后,文档那么齐全,不懂就去多看看,忘记有啥方法全靠 ide 智能提示就好,多用用就会慢慢熟练。

    推荐教程:PHP制作阴阳历转换的日历插件

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