PHP时间格式详解大全,如何格式化日期时间

大超

php格式化日期时间时一般使用date()函数来完成,这个函数有两个参数,分别是format和timestamp,这里按常用的年、月、日、时、分、秒、星期等来简单介绍。

date(format,timestamp)
参数描述
format

必需。规定输出日期字符串的格式。可使用下列字符:

  • d - 一个月中的第几天(从 01 到 31)

  • D - 星期几的文本表示(用三个字母表示)

  • j - 一个月中的第几天,不带前导零(1 到 31)

  • l('L' 的小写形式)- 星期几的完整的文本表示

  • N - 星期几的 ISO-8601 数字格式表示(1表示Monday[星期一],7表示Sunday[星期日])

  • S - 一个月中的第几天的英语序数后缀(2 个字符:st、nd、rd 或 th。与 j 搭配使用)

  • w - 星期几的数字表示(0 表示 Sunday[星期日],6 表示 Saturday[星期六])

  • z - 一年中的第几天(从 0 到 365)

  • W - 用 ISO-8601 数字格式表示一年中的星期数字(每周从 Monday[星期一]开始)

  • F - 月份的完整的文本表示(January[一月份] 到 December[十二月份])

  • m - 月份的数字表示(从 01 到 12)

  • M - 月份的短文本表示(用三个字母表示)

  • n - 月份的数字表示,不带前导零(1 到 12)

  • t - 给定月份中包含的天数

  • L - 是否是闰年(如果是闰年则为 1,否则为 0)

  • o - ISO-8601 标准下的年份数字

  • Y - 年份的四位数表示

  • y - 年份的两位数表示

  • a - 小写形式表示:am 或 pm

  • A - 大写形式表示:AM 或 PM

  • B - Swatch Internet Time(000 到 999)

  • g - 12 小时制,不带前导零(1 到 12)

  • G - 24 小时制,不带前导零(0 到 23)

  • h - 12 小时制,带前导零(01 到 12)

  • H - 24 小时制,带前导零(00 到 23)

  • i - 分,带前导零(00 到 59)

  • s - 秒,带前导零(00 到 59)

  • u - 微秒(PHP 5.2.2 中新增的)

  • e - 时区标识符(例如:UTC、GMT、Atlantic/Azores)

  • I(i 的大写形式)- 日期是否是在夏令时(如果是夏令时则为 1,否则为 0)

  • O - 格林威治时间(GMT)的差值,单位是小时(实例:+0100)

  • P - 格林威治时间(GMT)的差值,单位是 hours:minutes(PHP 5.1.3 中新增的)

  • T - 时区的简写(实例:EST、MDT)

  • Z - 以秒为单位的时区偏移量。UTC 以西时区的偏移量为负数(-43200 到 50400)

  • c - ISO-8601 标准的日期(例如 2023-05-05T16:34:42+00:00)

  • r - RFC 2822 格式的日期(例如 Fri, 12 Apr 2023 12:01:05 +0200)

  • U - 自 Unix 纪元(January 1 1970 00:00:00 GMT)以来经过的秒数

同时,也可使用下列预定义常量(从 PHP 5.1.0 开始可用):

  • DATE_ATOM - Atom(例如:2023-04-12T15:52:01+00:00)

  • DATE_COOKIE - HTTP Cookies(例如:Friday, 12-Apr-13 15:52:01 UTC)

  • DATE_ISO8601 - ISO-8601(例如:2023-04-12T15:52:01+0000)

  • DATE_RFC822 - RFC 822(例如:Fri, 12 Apr 13 15:52:01 +0000)

  • DATE_RFC850 - RFC 850(例如:Friday, 12-Apr-13 15:52:01 UTC)

  • DATE_RFC1036 - RFC 1036(例如:Fri, 12 Apr 13 15:52:01 +0000)

  • DATE_RFC1123 - RFC 1123(例如:Fri, 12 Apr 2023 15:52:01 +0000)

  • DATE_RFC2822 - RFC 2822(Fri, 12 Apr 2023 15:52:01 +0000)

  • DATE_RFC3339 - 与 DATE_ATOM 相同(从 PHP 5.1.3 开始)

  • DATE_RSS - RSS(Fri, 12 Aug 2023 15:52:01 +0000)

  • DATE_W3C - 万维网联盟(例如:2023-04-12T15:52:01+00:00)

timestamp可选。规定整数的 Unix 时间戳。默认是当前的本地时间(time())。

PHP如何格式化时间

如果是想直接获取当前日期或时间,可以直接用date函数,上面的表格里列出了详细的格式规则,可以自己随意组合。

例如:

$riqi = date("Y-m-d");
echo $riqi . "<br>";
$riqiheshijian = date("Y-m-d H:i:s");
echo $riqiheshijian;

从数据库里面读出来的时间一般是字符串格式,首先要用strtotime函数来转换为时间戳后才能格式化

例如:

$riqi = date("Y-m-d", strtotime($shujukulideshijian));
echo $riqi;

标准时间与时间戳转换

//获得服务端系统时间
date_default_timezone_set(PRC);
$nowtime=date("Y-m-d G:i:s");
//标准时间转为时间戳
$dateline=strtotime($nowtime);
//时间戳转为标准时间
$nowtime=date('H:i:s',$dateline);

日期增加固定天数

//标准时间转为时间戳
$dateline=strtotime($nowtime);
//设定规定时间
$days=3600*24*20; //20天
$new_dateline=$dateline+$days; 
//增加固定天数后的新时间戳转为标准时间
$new_nowtime=date('Y-m-d G:i:s',$new_dateline);

规范化星期表达

//获得服务端系统时间
$today="";
date_default_timezone_set(PRC);  //设置时区
$Ymd_time=date("Y年m月d日 H:i:s ");
$workday=date("w");
$workday_arr=array("日","一","二","三","四","五","六"); //规范化星期表达
$today=$Ymd_time."星期".$workday_arr[$workday];
echo $today;
//输出如:2023年4月22日 10:20:23 星期日

后续例子不断补充……

有问题可在下方评论留言,或关注“大超小志”微信公众号留言。

留言评论

如需留言或评论,请在微信中打开此页面。