Avant d'apprendre formellement les fonctions de date, vous devez comprendre quelques concepts :
1. Fuseau horaire
2. Heure universelle
3. Le concept d'horodatage Unix
fuseau horaire
a déjà été beaucoup entendu. Disons quelques mots. Les domaines réels que nous utilisons dans la vraie vie sont également réglementés dans les ordinateurs.
Lorsque la Conférence internationale sur la longitude s'est tenue à Washington en 1884, afin de surmonter la confusion temporelle, le monde a été divisé en 24 fuseaux horaires.
En Chine, l'heure du district de Dongba, où se trouve la capitale Pékin, est adoptée comme heure nationale unifiée.
Temps universel
Non seulement les astronomes utilisent le temps moyen de Greenwich (abréviation anglaise : GMT), mais ce terme apparaît également fréquemment dans les journaux et journaux. Nous savons qu'il y a des heures locales partout. Si nous utilisons l’heure locale pour enregistrer un événement international majeur, cela sera compliqué et peu pratique. Et il sera facile de commettre des erreurs avec le temps. Par conséquent, les astronomes ont proposé une méthode d’enregistrement acceptable et pratique pour tout le monde, qui consiste à utiliser l’heure locale de Greenwich (une région du Royaume-Uni) comme norme.
horodatage Unix
L'ordinateur lui-même ne connaît pas l'heure, nous définissons donc une heure dans l'ordinateur pour faciliter les calculs. Nous avons donc spécifié une méthode de calcul, l'horodatage Unix.
Le nombre de secondes écoulées depuis le début de l'époque Unix (0h00 le 1er janvier 1970).
Nous avons appris quelques concepts, nous pouvons maintenant commencer à apprendre la fonction temps.
1. Définir le fuseau horaire
Si nous sommes un programme multinational multilingue, nous écrivons généralement un fuseau horaire dans le fichier de configuration, à chaque fois que le programme est en cours d'exécution. . Les paramètres du fuseau horaire seront lus pour afficher l’heure.
La fonction pour définir le fuseau horaire est :
1).date_default_timezone_get()
2).date_default_timezone_set()
Nous ne nous concentrerons pas sur la première fonction, elle est relativement simple.
L'utilisation est la suivante :
string date_default_timezone_get (void)
La fonction est la suivante :
Obtenir la valeur par défaut utilisée par toutes les dates et l'heure fonctionnent dans un script Fuseau horaire
Exemple :
<?php echo date_default_timezone_get (); ?>
Ceci affichera l'heure actuellement réglée.
La deuxième fonction est le point clé :
L'utilisation est la suivante :
bool date_default_timezone_set ( string $timezone_identifier )
Les fonctions sont les suivantes :
Fuseau horaire par défaut utilisé pour toutes les fonctions de date et d'heure
Exemple :
<?php //定义一下时区常量,以后你可以放到配置文件里 define('TIME_ZONE','Asia/shanghai'); //执行函数 date_default_timezone_set(TIME_ZONE); echo date('Y-m-d H:i:s'); ?>
Essayez de comparer le code de l'exemple ci-dessus, puis commentez date_default_timezone_set et voyez ce qui sera demandé.
Remarque :
Pour la liste des fuseaux horaires, veuillez consulter le manuel officiel http://php.net/manual/zh/timezones.php
2.time( ) pour obtenir l'horodatage Unix actuel
La fonction de la fonction time() est d'obtenir l'horodatage Unix de l'heure actuelle.
Le code suivant génère l'horodatage Unix de l'heure actuelle.
<?php $time=time(); print_r( $time); ?>
Résultat de l'exécution du programme :
1421597858
3. "Flax drop" est la clé pour apprendre le traitement du temps en PHP
Y en anglais est l'année, ce qui signifie année - —Ya
m anglais représente le mois, qui représente le mois - Ma
d anglais représente le jour, qui représente la date - tombant
nous devons donc afficher le année précédente, mois, date. Par exemple : 1er juillet 1997, on peut utiliser les trois paramètres ci-dessus.
<?php echo date('Y年m月d日'); ?>
Vous pouvez essayer d'exécuter le code pour voir s'il s'affiche. Il y a plusieurs paramètres après
:
H:m:s représente : heures, minutes et secondes
h en anglais est : hour représente les heures
L'anglais de i est : minute
l'anglais de s est : seconde représente la seconde
écrit en toutes lettres est :
<?php //就可以显示出来当前的时间了哟。 echo date('Y-m-d H:i:s'); ?>
La fonction date est utilisée pour formater une heure Sortie vers faciliter l'affichage ou le stockage de l'heure. Le format de syntaxe est le suivant :
string date ( string $forrnat [, int $tirnestamp] )
Dans la liste des paramètres :
$timestamp est un horodatage, et la fonction enfonce cet horodatage dans $format Sortie au format spécifié.
Si $timestamp n'a pas de valeur d'entrée, la valeur par défaut est l'heure actuelle.
$format est une chaîne de format de sortie temporelle, et les caractères spécifiés doivent être utilisés pour construire le format de sortie.
Tableau des paramètres de format de la fonction date :
字符 | 说明 | 返回值 |
---|---|---|
d | 月份中的第几天,有前导零的2 位数字 | 01 到31 |
D | 英文星期几,3个字母 | Mon到Sun |
j | 月份中的第几天,没有前导零 | 1 到31 |
l(字母) | 英文星期几 | Sunday到 Saturday |
N | 1格式数字表示的星期 | 1(表示星期一)到7(表示星期天) |
S | 每月天数后面的英文后缀,2个字符 | st,nd,rd或者th。可以和jg一起用 |
w | 星期中的第几天,数字表示 | 0(表示星期天)到 6(表示星期六) |
z | 一年中的第几天 | 0到366 |
W | 年份中的第几周,每周从星期一开始 | 42(当年的第42周) |
F | 月份,完整的文本格式 | January 到 December |
m | 数字表示月份,有前导零 | 01 到 12 |
M | 3个字母缩写表示的月份 | Jan 到Dec |
n | 数字表示月份,没有前导零 | 1 到 12 |
t | 给定月份所应有的天数 | 28 到 31 |
L | 是否为闰年 | 如果是闰年为1,否则为o |
o | 格式年份数字 | 例如2007 |
Y | 4 位数字完整表示年份 | 例如1999或2008 |
y | 2 位数字表示的年份 | 例如99或08 |
a | 小写的上午和下午值 | am或pm |
A | 大写的上午和下午值 | AM或PM |
g | 小时,12小时格式,没有前导零 | 1到12 |
G | 小时,24小时格式,没有前导零 | 0 到 23 |
i | 有前导零的分钟数 | 00 到 59 |
s | 秒数,有前导零 | 00到59 |
e | 时区标识 | |
U | 从Unix纪元开始至今的秒数 | 长整型数字 |
3. getdate obtient l'heure actuelle du système
getdate est utilisé pour obtenir l'heure actuelle du système ou pour obtenir la signification spécifique d'un horodatage. L'horodatage est un entier long et le format syntaxique de getdate est le suivant.
array getdate ([ int $timestamp = time() ] ) La valeur de retour de la fonction
est un tableau contenant des informations temporelles obtenues en fonction de l'horodatage. S'il n'y a aucun paramètre, l'heure actuelle sera renvoyée. Le tableau renvoyé par getdate, le nom de la clé inclut des informations complètes sur l'heure et la date.
键名 | 说明 | 返回值 |
---|---|---|
secnods | 秒 | 数字0到 59 |
minutes | 分钟 | 数字0到59 |
hours | 小时 | 数字 0到 23 |
mday | 月份中第几天 | 数字 1到 31 |
wday | 星期中第几天 | 数字0(表示星期天)到6(表示星期六) |
mon | 月份 | 数字 1 到 12 |
year | 年 | 4 位数字表示的完整年份 |
yday | 一年中第几天 | 数字0到365 |
weekday | 星期几的英文 | Sunday到 Saturday |
month | 月份的英文 | January 到 December |
0 | 自从Unix纪元开始的秒数 | 长整型数字 |
Le code suivant peut renvoyer les détails du tableau getdate.
<?php $mytime=getdate(); print_r( $mytime); ?>
print_r peut afficher tous les noms et valeurs de clésdans un tableau. En exécutant ce code, le résultat est celui indiqué ci-dessous. Le programme affiche les détails de l'heure et de la date de l'ordinateur actuel :
Array ( [seconds] => 1 //秒 [minutes] => 10 //分钟 [hours] => 17 //小时 [mday] => 18 //日 [wday] => 0 //星期中的第几天 [mon] => 1 //月 [year] => 2015 //年 [yday] => 17 //年中的第几天 [weekday] => Sunday //星期 [month] => January //月份 [0] => 1421597401 //时间戳 )
Après avoir compris la fonction getdate et le tableau renvoyé, il est facile d'obtenir les informations sur l'heure actuelle. Le code suivant utilise la fonction getdate pour obtenir des informations temporelles et appelle la valeur du tableau time renvoyé pour afficher les informations temporelles.
<?php $mytime = getdate(); echo "年 :".$mytime['year']."\n"; echo "月 :".$mytime['mon']."\n"; echo "日 :".$mytime['mday']."\n"; echo "时 :".$mytime['hours']."\n"; echo "分 :".$mytime['minutes']."\n"; echo "秒 :".$mytime['seconds']."\n"; echo "一个小时中的第几钟 :".$mytime['minutes']."\n"; echo "这是一分钟的第几秒 :".$mytime['seconds']."\n"; echo "星期名称 :".$mytime['weekday']."\n"; echo "月份名称 :".$mytime['month']."\n"; echo "时间戳 :".$mytime[0]."\n"; ?>
Exécutez ce programme et les informations détaillées de l'heure actuelle seront affichées. Les résultats de l'exécution du programme sont les suivants.
Année : 2015
Mois : 1
Jour : 18
Heure : 17
Minute : 14
Seconde : 11
Le premier jour du Jour de la semaine : 14
Jour de l'année : 11
Nom de la semaine : dimanche
Nom du mois : janvier
Horodatage : 1421597651