php之日期时间操作一箩筐
格式化日期时间
date : 格式化日期时间
场景
将当前日期时间或者特定日期时间格式化输出为特定格式的字符串,常用于人性化展示信息.
说明
返回给定时间戳格式化后所产生的日期时间字符串,如果没有给出时间戳则默认使用本地当前时间.
备注
格式 | 说明 | 返回值示例 |
---|---|---|
Y |
4 位数字完整表示的年份 |
2019 |
y |
2 位数字表示的年份 |
19 |
M |
三个字母缩写表示的月份 | Jan 到 Dec |
m |
数字表示的月份,有前导零 | 01 到 12 |
D |
星期中的第几天,文本表示,3 个字母 |
Mon 到 Sun |
d |
月份中的第几天,有前导零的 2 位数字 |
01 到 31 |
H |
小时,24 小时格式,有前导零 |
00 到 23 |
h |
小时,12 小时格式,有前导零 |
01 到 12 |
I |
是否为夏令时 | 如果是夏令时为1 ,否则为 0
|
i |
有前导零的分钟数 | 00 到 59 |
S |
每月天数后面的英文后缀,2 个字符 |
st,nd,rd 或者 th ,可以和 j 一起用 |
s |
秒数,有前导零 | 00 到 59 |
常用格式
// 形如 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秒");
示例
<?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/>"; ?>
日期转化时间戳
time : 返回当前的 Unix 时间戳
场景
获取当前日期时间或特定日期时间的时间戳,常用于日期时间之间的相互转换.
说明
返回自从 Unix 纪元(格林威治时间 1970年1月1日 00:00:00)到当前时间的秒数.
示例
<?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 : 返回当前 Unix 时间戳和微秒数
场景
获取当前日期时间或特定日期时间的时间戳,常用于程序运行过程打点分析,也可以用于日期时间之间的互相转换.
说明
当前 Unix 时间戳以及微秒数,本函数仅在支持 `gettimeofday()`` 系统调用的操作系统下可用.
示例
<?php // 设置当前时区为上海时区 date_default_timezone_set("Asia/Shanghai"); // 获取当前时区 cho "当前时区 : ".date_default_timezone_get()."<br/>"; // 当前日期时间戳 echo "当前日期时间戳: ".time()." <--> ".microtime()." <--> ".microtime(TRUE)."<br/>"; ?>
mktime : 取得一个日期的 Unix 时间戳
场景
获取给定日期的时间戳,按照"时分秒 月日年"格式依次解析,返回时间戳.
说明
根据给出的参数返回 Unix 时间戳.
备注
格式 | 说明 | 参数示例 |
---|---|---|
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制作阴阳历转换的日历插件
以上是php之日期时间操作一箩筐的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

在使用PHP编写程序时,我们常常会需要将日期转换为时间戳,或者将时间戳转换为日期。这个过程在PHP中非常简单,只需要使用几个简单的函数就可以轻松地完成。在本文中,我们将介绍如何将PHP日期转换为时间戳,同时也会讨论一些常见的使用场景。

计算日期差值在实际应用中非常常见,比如在做网站开发时,我们可能需要计算两个日期之间的差值,以便正确地显示时间戳、倒计时等。而在计算日期差值时,我们经常需要计算两个日期的月份差值,下面我们来介绍如何用PHP计算日期差几个月。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳) 1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

在PHP中,可以使用date()函数来获取当前日期和星期几。只需将date()函数的第二个参数省略,第一个参数设置为“Y-m-d H:i:s”即可获取当前日期,语法“date("Y-m-d H:i:s")”;而当第一个参数设置为“N”时则可获取是星期几,语法“date("N")”。“N”可返回ISO-8601格式数字表示的星期中的第几天,范围1(表示星期一)到7(表示星期天)。

PHP是一种流行的编程语言,广泛应用于Web开发。在PHP中,字符串和日期之间的转换是一个非常常见的操作。在这篇文章中,我们将讨论如何把PHP字符串转成时间格式。

在php中,可以使用date()函数来将秒数转为时分秒的格式,语法“date("H:i:s",时间戳)”。时间戳是自Unix纪元起到当前时间的秒数,而date()函数可以格式化时间戳,通过第一个参数设置的格式符将时间戳转为指定格式的日期字符串。格式符“H”表示24小时制,也可用“h”符,它表示12小时制;格式符“i”表示带前导零的分钟值,格式符“s”表示带前导零秒钟值。

两种增加方法:1、直接利用strtotime()函数计算时间间隔,可将间隔后的日期以UNIX时间戳的格式返回,语法“strtotime(" 1 day")”;2、利用time()函数计算当前时间戳,并在当前时间戳的基础上加上一天的秒数即可,语法“time() (1 * 24 * 3600)”。

在php中,可以使用date()函数来将时间戳转换为日期时间,该函数可以将时间戳格式化为可读性更好的日期和时间;语法格式“date(format,时间戳)”,参数format用于指定格式化字符,设置要转换成的日期格式,例如“Y-m-d H:i:s”,就是将时间戳转为“年-月-日 时:分:秒”格式。
