Maison > Article > développement back-end > Un tas d'opérations de date et d'heure en php
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
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 '0': $dayStr = "日"; break; case '1': $dayStr = "一"; break; case '2': $dayStr = "二"; break; case '3': $dayStr = "三"; break; case '4': $dayStr = "四"; break; case '5': $dayStr = "五"; break; case '6': $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!