PHP时间处理

时间处理

设置时区

php 复制代码
// php.ini
date.timezone = Asia/Shanghai

或者直接在代码

php 复制代码
ini_set('date.timezone', 'Asia/Shanghai');
php 复制代码
date_default_timezone_set('Asia/Shanghai')

获取时间

microtime:获取unix时间戳,并带有毫秒

php 复制代码
microtime();
php 复制代码
0.66211600 1648106371

time:返回linux时间戳

css 复制代码
time();

getdate:获取日期时间信息,返回时间信息数组

php 复制代码
Array ( 
    [seconds] => 28 
    [minutes] => 18 
    [hours] => 15 
    [mday] => 24 
    [wday] => 4 
    [mon] => 3 
    [year] => 2022 
    [yday] => 82 
    [weekday] => Thursday 
    [month] => March 
    [0] => 1648106308 
)

格式化

format Des demo
d 月份中的第几天,使用两位的数字表示 不足两位时在前补 0 01 到 31
D 星期几的英文缩写( 3 字符) Mon 到 Sun
l 星期几的英文单词 Sunday 到 Saturday
N 根据 ISO-8601 标准格式,使用数字表示星期中的第几天(PHP5.1.0 新加) 1(表示星期一)到 7(表示星期天)
S 每月天数后面的英文后缀(2字符) st、nd、rd 或者 th。可以和 j 一起使用
w 使用数字表示星期中的第几天 0(表示星期天)到 6(表示星期六)
z 使用数字表示一年中的第几天 0 到 365
W 根据 ISO-8601 标准格式,使用数字表示年份中的第几周,每周从星期一开始,(PHP 4.1.0 新增) 例如:42(当年的第 42 周)
F 月份的英文单词,例如 January 或者 June January 到 December
m 使用两位的数字表示当前月份 01 到 12
M 月份的英文缩写 Jan 到 Dec
n 使用数字表示当前月份 1 到 12
t 指定月份的天数 28 到 31
L 指定的年份是否为闰年 如果是闰年值为 1,否则为 0
o 根据 ISO-8601 标准格式使用数字表示年份,这和 Y 的作用相同(PHP 5.1.0 新增) 1999 or 2019
Y 使用 4 位数字表示完整的年份 例如:1999 或 2019
y 使用 2 位数字表示年份 例如:99 或 03
a 小写的上午和下午值 am 或 pm
A 大写的上午和下午值 AM 或 PM
B Swatch Internet 标准时 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 新增)。需要注意的是 date() 函数总是返回 000000,因为它只接受 integer 参数,而 DateTime::format() 才支持毫秒 例如:654321
e 时区标识 例如:UTC、GMT、Atlantic/Azores
I 是否为夏令时 夏令时为 1,否则为 0
O 与格林尼治时间相差的小时数 例如:+0200
P 与格林尼治时间(GMT)的差别,小时和分钟之间由冒号分隔 例如:+02:00
T 本机所在的时区 例如:EST、MDT(在 windows 下为完整文本格式,例如"Eastern Standard Time",中文版会显示"中国标准时间")
Z 时差偏移量的秒数,UTC 西边的时区偏移量总是负的,UTC 东边的的时区偏移量总是正的 -43200 到 43200
c ISO-8601 格式的日期 2014-02-12T15:19:21+00:00
r RFC 822 格式的日期 例如:Thu,21 Dec 2000 16:01:07 +0200
U 从 UNIX 纪元(January 1 1970 00:00:00 GMT)开始至今的秒数 和 time() 返回相同的时间戳

输入年月日时分秒

php 复制代码
date_default_timezone_set('Asia/Shanghai');
echo date('Y-m-d H:i:s') . '<br>';

字符串时间

strtotime:将英文文本描述的日期时间描述解析为 UNIX 时间戳

php 复制代码
int strtotime ( string $time [, int $now = time() ] )
  • time:规定日期/时间字符串
  • now:用来计算返回值的时间戳。如果省略该参数,则使用当前时间
php 复制代码
echo strtotime("now"), "<br />";
echo strtotime("10 September 2000"), "<br />";
echo strtotime("+1 day"), "<br />";
echo strtotime("+1 week"), "<br />";
echo strtotime("+1 week 2 days 4 hours 2 seconds"), "<br />";
echo strtotime("next Thursday"), "<br />";
echo strtotime("last Monday"), "<br />";

时间校验

checkdate:检验日期和时间的有效性,查看是否是合法的闰月之类

php 复制代码
checkdate(int $month, int $day, int $year): bool {}
php 复制代码
var_dump(checkdate(2, 30, 2000));
相关推荐
JaguarJack12 小时前
FrankenPHP 原生支持 Windows 了
后端·php·服务端
BingoGo12 小时前
FrankenPHP 原生支持 Windows 了
后端·php
JaguarJack2 天前
PHP 的异步编程 该怎么选择
后端·php·服务端
BingoGo2 天前
PHP 的异步编程 该怎么选择
后端·php
JaguarJack2 天前
为什么 PHP 闭包要加 static?
后端·php·服务端
ServBay3 天前
垃圾堆里编码?真的不要怪 PHP 不行
后端·php
用户962377954483 天前
CTF 伪协议
php
BingoGo6 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php
JaguarJack6 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php·服务端
BingoGo7 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php