Maison > développement back-end > Problème PHP > Existe-t-il un moyen de manipuler le temps en php ?

Existe-t-il un moyen de manipuler le temps en php ?

青灯夜游
Libérer: 2023-03-15 18:48:02
original
2365 Les gens l'ont consulté

php a un moyen de manipuler le temps. PHP fournit une multitude de méthodes de traitement de la date et de l'heure : 1. date(), formate la date et l'heure locales ; 2. mktime(), renvoie l'horodatage de la date 3. idate(), formate l'heure locale sous forme d'entier ; ; 4. , strtotime(), convertit la chaîne d'heure en horodatage, etc.

Existe-t-il un moyen de manipuler le temps en php ?

L'environnement d'exploitation de ce tutoriel : système windows7, version PHP7.1, ordinateur DELL G3

php a une méthode de temps de fonctionnement.

L'utilisation et le traitement de la date et de l'heure sont essentiels dans le développement web, comme l'heure de soumission du formulaire, l'heure de connexion de l'utilisateur, l'heure de mise à jour et de suppression des données dans la base de données, etc. Si vous souhaitez enregistrer le moment où ces opérations sont effectuées, vous devez le compléter par la date et l'heure.

PHP nous offre une multitude de fonctions de traitement de date et d'heure :

Fonction Description
checkdate() Vérifiez la date grégorienne.
date_add() Ajoutez le jour, le mois, l'année, l'heure, la minute et la seconde à une date.
date_create_from_format() Renvoie un nouvel objet DateTime formaté selon le format spécifié.
date_create() Renvoie un nouvel objet DateTime.
date_date_set() Définissez une nouvelle date.
date_default_timezone_get() Renvoie le fuseau horaire par défaut, utilisé par toutes les fonctions Date/Heure.
date_default_timezone_set() Définissez le fuseau horaire par défaut, utilisé par toutes les fonctions Date/Heure.
date_diff() Renvoie la différence entre deux dates.
date_format() Renvoie une date formatée selon le format spécifié.
date_get_last_errors() Renvoie les avertissements/erreurs dans une chaîne de date.
date_interval_create_from_date_string() Créez un DateInterval à partir de la partie pertinente de la chaîne.
date_interval_format() Formater l'intervalle de temps.
date_isodate_set() Définissez la date ISO.
date_modify() Modifier l'horodatage.
date_offset_get() Renvoie le décalage du fuseau horaire.
date_parse_from_format() Renvoie un tableau associatif avec les détails de la date spécifiée selon le format spécifié.
date_parse() Renvoie un tableau associatif avec les détails d'une date spécifiée.
date_sub() Soustrayez le jour, le mois, l'année, les heures, les minutes et les secondes de la date spécifiée.
date_sun_info() Renvoie un tableau contenant des informations sur le lever/coucher du soleil et le début/la fin du crépuscule pour la date et le lieu spécifiés.
date_sunrise() Renvoie l'heure du lever du soleil à la date et au lieu spécifiés.
date_sunset() Renvoie l'heure du coucher du soleil à la date et au lieu spécifiés.
date_time_set() Réglez l'heure.
date_timestamp_get() Renvoie l'horodatage Unix.
date_timestamp_set() Définissez la date et l'heure en fonction de l'horodatage Unix.
date_timezone_get() Renvoie le fuseau horaire de l'objet DateTime donné.
date_timezone_set() Définit le fuseau horaire d'un objet DateTime.
date() Formater la date et l'heure locales.
getdate() Renvoie les informations de date/heure d'un horodatage ou la date/heure locale actuelle.
gettimeofday() renvoie l'heure actuelle.
gmdate() Formater la date et l'heure GMT/UTC.
gmmktime() Renvoie l'horodatage UNIX de la date GMT.
gmstrftime() Formater la date et l'heure GMT/UTC en fonction des paramètres régionaux.
idate() Formater l'heure/la date locale sous forme d'entier.
localtime() Renvoie l'heure locale.
microtime() Renvoie le nombre de microsecondes dans l'horodatage Unix actuel.
mktime() Renvoie l'horodatage Unix d'une date.
strftime() Formate l'heure/la date locale en fonction des paramètres régionaux.
strptime() Analysez l'heure/la date générée par strftime().
strtotime() Analysez n'importe quelle description de date ou d'heure en anglais dans un horodatage Unix.
time() Renvoie l'horodatage Unix de l'heure actuelle.
timezone_abbreviations_list() Renvoie un tableau associatif contenant l'heure d'été, le décalage et le nom du fuseau horaire.
timezone_identifiers_list() Renvoie un tableau numérique avec tous les identifiants de fuseau horaire.
timezone_location_get() Renvoie les informations de localisation dans le fuseau horaire spécifié.
timezone_name_from_ abbr() Renvoie le nom du fuseau horaire en fonction de l'abréviation du fuseau horaire.
timezone_name_get() Renvoie le nom du fuseau horaire.
timezone_offset_get() Renvoie le décalage du fuseau horaire par rapport à GMT.
timezone_open() Créez un nouvel objet DateTimeZone.
timezone_transitions_get() Renvoie toutes les transitions pour les fuseaux horaires.
timezone_version_get() Renvoie la version de la base de données de fuseau horaire.

Ce qui suit est une brève introduction à certaines méthodes de traitement de l'heure et de la date :

1. Obtenez l'heure actuelle avec PHP (5 façons)

Dans les fonctions de date et d'heure, il est très important d'obtenir l'horodatage UNIX. L'horodatage est une séquence de caractères. Il fait référence au nombre total de millisecondes depuis 00:00:00 le 1er janvier 1970 GMT (08:00:00 le 1er janvier 1970, heure de Pékin) jusqu'à aujourd'hui. Voici plusieurs fonctions pour obtenir l’heure actuelle. La fonction

  • gmmktime()

gmmktime() peut obtenir l'horodatage UNIX de la date GMT. La syntaxe est la suivante :

int gmmktime ([ int $hour [, int $minute [, int $second [, int $month [, int $day [, int $year [, int $is_dst ]]]]]]] )
Copier après la connexion

Les paramètres de cette fonction peuvent être laissés vides de droite à gauche, et les paramètres vides seront définis sur la valeur GMT actuelle correspondante.

Les exemples d'utilisation sont les suivants :

<?php
echo gmmktime();  //没有设置参数, 则默认取得当前GMT时间
echo gmmktime(0,45,3,7,7,2016);  //设置参数表示GMT时间2016年7月7日0点45分3秒
?>
Copier après la connexion

Le résultat d'impression de l'exécution du programme ci-dessus est :

1467909956   1467852303
Copier après la connexion
  • mktime()

mktime() Vous pouvez également obtenir l'horodatage UNIX d'une date. La syntaxe est la suivante :

int mktime ([ int $hour = date("H") [, int $minute = date("i") [, int $second = date("s") [, int $month = date("n") [, int $day = date("j") [, int $year = date("Y") [, int $is_dst = -1 ]]]]]]] )
Copier après la connexion

Cette fonction renvoie un horodatage UNIX basé sur les arguments donnés. Un horodatage est un entier long contenant le nombre de secondes entre l'époque UNIX et une heure donnée.

Comme la fonction gmmktime(), les paramètres de cette fonction peuvent également être omis de droite à gauche. Tout paramètre omis sera défini sur la valeur actuelle de la date et de l'heure locales.

Les exemples d'utilisation sont les suivants :

<?php
echo mktime();  // 没有设置参数则默认取得当前GMT时间
echo mktime(0,45,3,7,7,2016);  //设置参数表示GMT时间2016年7月7日0点45分3秒
?>
Copier après la connexion

Le résultat imprimé de l'exécution du programme ci-dessus est :

1467910465 1467852303
Copier après la connexion
  • microtime()

microtime() peut obtenir l'horodatage UNIX actuel et les microsecondes. La syntaxe est la suivante :

mixed microtime ([ bool $get_as_float ] )
Copier après la connexion

Si la valeur du paramètre get_as_float est définie sur true, microtime() renverra un nombre à virgule flottante ; sans paramètres, il renverra une chaîne au format "msec sec", d'où sec provient. de l'époque UNIX jusqu'à aujourd'hui Nombre de secondes, msec est la partie microseconde. Les deux parties de la chaîne sont renvoyées en secondes.

Les exemples d'utilisation sont les suivants :

<?php
echo microtime();  //返回 msec sec 格式字符串表示时间
echo "<br/>";
echo microtime(true);  //返回一个浮点型字符串表示时间
?>
Copier après la connexion

Le résultat imprimé de l'exécution du programme ci-dessus est le suivant :

0.40474900 1467910862
1467910862.4048
Copier après la connexion
  • time()

time() La fonction peut renvoyer l'horodatage UNIX actuel. La syntaxe est la suivante :

int time ( void )
Copier après la connexion

time() La syntaxe de la fonction est relativement simple. L'exemple d'utilisation est le suivant :

<?php
echo time();
?>
Copier après la connexion

Le résultat d'impression de l'exécution du programme ci-dessus est :

1467911104
Copier après la connexion
  • getdate().

getdate() peut obtenir les informations de date et d'heure. La syntaxe est la suivante :

array getdate ([ int $timestamp = time() ] )
Copier après la connexion

Cette fonction renvoie un tableau associatif contenant des informations de date basées sur l'horodatage. Si aucun horodatage n'est donné, il est supposé qu'il s'agit de l'heure locale actuelle (c'est la même valeur que la fonction time()).

Les unités de nom de clé dans le tableau associatif renvoyé sont telles qu'indiquées dans le tableau.

mdayLa représentation numérique du jour du mois1 à 31wday Le numéro du jour de la semaine0 (dimanche) à 6 (samedi)monLe numéro du mois1 à 12année 4 chiffres L'année complètePar exemple : 1999 ou 2019ydayLa représentation numérique du jour de l'année0 à 365weekdayLa représentation textuelle complète du jour de la semaine Du lundi au dimanchemoisReprésentation en texte intégral du mois, comme janvier ou avrilJanvier à décembre0Le nombre de secondes depuis l'époque UNIX et la valeur de retour de time() et for date() La valeur est similaire à dépend du système, la valeur typique est -2147483648 ~ 2147483647
getdate() renvoie le nom de la clé du tableau associatif
nom de la clé description exemple de valeur de retour
secondesreprésentation numérique des secondes 0 à 59
minutes minutes La représentation numérique de 0 à 59
heuresLa représentation numérique des heures 0 à 23
🎜

getdate() 函数的使用示例如下:

<?php
echo "<pre class="brush:php;toolbar:false">";
var_dump(getdate());
?>
Copier après la connexion

执行以上程序的打印结果如下:

array(11) {
    ["seconds"]=>int(57)
    ["minutes"]=>int(18)
    ["hours"]=>int(17)
    ["mday"]=>int(7)
    ["wday"]=>int(4)
    ["mon"]=>int(7)
    ["year"]=>int(2016)
    ["yday"]=>int(188)
    ["weekday"]=>string(8) "Thursday"
    ["month"]=>string(4) "July"
    [0]=>int(1467911937)
}
Copier après la connexion

2、strtotime()与mktime():日期转时间戳

  • strtotime() 函数

使用 strtotime() 函数可以将任何字符串类型的日期/时间转换为 UNIX 时间戳,其语法格式如下:

strtotime($time [,$now = time()])
Copier après la connexion

其中 $time 为表示时间/日期的字符串,例如“2020-01-01”;$now 为可选参数,用来计算返回值的时间戳。函数执行成功会返回指定的字符串,执行失败返回 FALSE。

另外需要注意的是,如果使用两位数字表示年份的话,其中 0 ~ 69 表示 2000 ~ 2069,70 ~ 100 则表示 1970 ~ 2000。

【示例】使用 strtotime() 函数获取指定时间的时间戳。

<?php
    echo &#39;当前的时间戳是:&#39;.time().&#39;<br>&#39;;
    echo &#39;使用“now”获取当前的时间戳:&#39;.strtotime(&#39;now&#39;).&#39;<br>&#39;;
    echo &#39;2000-09-10 的时间戳是:&#39;.strtotime("10 September 2000").&#39;<br>&#39;;
    echo &#39;在当前的时间戳上加一天:&#39;.strtotime("+1 day").&#39;<br>&#39;;
    echo &#39;在当前的时间戳上加一周:&#39;.strtotime("+1 week").&#39;<br>&#39;;
    echo &#39;在当前的时间戳上加一周两天四小时两分钟:&#39;.strtotime("+1 week 2 days 4 hours 2 seconds").&#39;<br>&#39;;
    echo &#39;下一个周四的时间戳:&#39;.strtotime("next Thursday").&#39;<br>&#39;;
    echo &#39;上一个周一的时间戳:&#39;.strtotime("last Monday").&#39;<br>&#39;;
?>
Copier après la connexion

运行结果如下:

当前的时间戳是:1585273874
使用“now”获取当前的时间戳:1585273874
2000-09-10 的时间戳是:968515200
在当前的时间戳上加一天:1585360274
在当前的时间戳上加一周:1585878674
在当前的时间戳上加一周两天四小时两分钟:1586065876
下一个周四的时间戳:1585756800
上一个周一的时间戳:1584892800
Copier après la connexion

注意:根据具体时间的变化,程序每次运行的结果略有不同。

  • mktime() 函数

除了 strtotime() 函数外,我们还可以使用 PHP 中的 mktime() 函数来获取指定日期的 UNIX 时间戳,该函数的语法格式如下:

mktime ([$hour = date("H") [, $minute = date("i") [, $second = date("s") [, $month = date("n") [, $day = date("j") [, $year = date("Y") [, $is_dst = -1 ]]]]]]])
Copier après la connexion

参数说明如下:

  • $hour:表示一天中经过的小时数。如果 $hour 为负值,则表示前一天的适当时间;如果 $hour 大于 23,则表示第二天的适当时间。

  • $minute:表示一个小时内经过的分钟数。如果 $minute 为负值,则表示前一小时适当的分钟数;如果 $minute 大于 59,则表示下一小时中的适当分钟数。

  • $second:表示一分钟内经过的秒数。如果 $second 为负值,则表示前一分钟内的适当秒数;如果 $second 大于59,则表示下一分钟内的适当秒数。

  • $month:表示一年中经过的月份数,取值范围在 1 到 12 之间。如果 $month 小于 1(包括负值),则表示上一年的适当月份;如果 $month 大于 12,则表示下一年的适当月份。

  • $day:表示一个月中经过的天数,取值范围在 1 到 31 之间(取决于具体月份的天数)。如果 $day 小于 1(包括负值),则表示上个月的适当天数,比如 0 表示上个月的最后一天,-1 表示上个月的倒数第二天等等;如果 $day 大于本月的最大天数,则表示下个月的适当日期。

  • $year:表示具体的年份,可以是两位或四位数字,0 ~ 69 对应 2000 ~ 2069 年,70 ~ 100 对应 1970 ~ 2000年。在如今系统中普遍把 time_t 作为一个 32 位有符号整数的情况下,$year 的合法范围是 1901 到 2038 之间,不过此限制自 PHP5.1.0 起已被克服了。

  • $is_dst:本参数可以设为 1,表示正处于夏时制时间(DST),0 表示不是夏时制,或者 -1(默认值)表示不知道是否是夏时制。不过本参数在 PHP5.1.0 中已被废弃,并在 PHP7.0.0 中移除。

提示:mktime() 函数中的参数可以从右向左省略,任何省略的参数会被设置成本地日期和时间的当前值。如果省略函数的所有参数,那么 mktime() 函数会和 time() 函数一样,返回当前的时间戳。

【示例】使用 mktime() 函数获取指定时间的时间戳。

<?php
    $time1 = time();
    echo &#39;当前的时间戳是:&#39;.$time1.&#39;<br>&#39;;
    $time2 = mktime(0, 0, 0, 3, 26, 20);
    echo &#39;2020-03-26 00:00:00 的时间戳是:&#39;.$time2.&#39;<br>&#39;;
    $time3 = mktime();
    echo &#39;省略函数的所有参数,获得的时间戳是:&#39;.$time3.&#39;<br>&#39;;
    $time4 = mktime(-1, -20, 6, 3, 26, 2020);
    echo &#39;2020-03-25 22:40:06 的时间戳是:&#39;.$time4.&#39;<br>&#39;;
?>
Copier après la connexion

运行结果如下:

当前的时间戳是:1585216256
2020-03-26 00:00:00 的时间戳是:1585152000
省略函数的所有参数,获得的时间戳是:1585216256
2020-03-25 22:40:06 的时间戳是:1585147206
Copier après la connexion

推荐学习:《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!

Étiquettes associées:
php
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>
Tutoriels associés
Recommandations populaires
Derniers cours
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal