PHP 日期格式化显示 DateTime Format
最近使用一个接口API需要发送精确到毫秒的时间戳,格式为
YY-MM-DD HH-MM-SS SSS
网上搜了半天大部分帖子都是说php没有毫秒时间戳,需要用别的方法实现。
还有一个帖子是说php只提供微秒级别的所以需要自己/1000
实际上php官方的DateTime format里是提供了很多时间格式的。
$dateTime = new DateTime();
$time = $dateTime->format('Y-m-d H:i:s v');
output:
2020-11-18 09:31:51 636
如
Y代表4位数的年份,y就是2位数的年份;
g代表12小时制不补0的小时,G代表24小时制不补0的小时;
h代表12小时制补0的小时,H代表24小时制补0的小时;
u代表微秒,v代表毫秒。
具体内容见下表:
字符 | 含义 | 示例 |
---|---|---|
表示日期 | ||
d | 一个月中的第几天,补零 | 01到31 |
D | 星期几,缩写 | Mon到Sun |
j | 一个月中的第几天,不补零 | 1到31 |
l (小写的’L’) | 星期几,全称 | Sunday到Saturday |
N | ISO-8601标准下,一周中的第几天 | 1(星期一)到7(星期天) |
S | 日期的序号后缀,两个字母 | st,nd,rd 或th |
w | 一周中的第几天 | 0(星期天)到6(星期六) |
z | 一年中的第几天 | 0到365 |
表示周 | ||
W | ISO-8601标准下(以周一为一周的开始),一年中的第几周 | 42(一年中的第42周) |
表示月 | ||
F | 月份,全称 | January到December |
m | 月份,两位数字,补零 | 01到12 |
M | 月份,简称,三个字母 | Jan到Dec |
n | 月份,数字,不补零 | 1到12 |
t | 一个月中的第几天 | 28到31 |
表示年 | ||
L | 是否为闰年 | 1(闰年)0(非闰年) |
o | ISO-8601标准下年份,四位数字(同Y,如果W属于前一年或后一年则使用这个符号) | 1999或2003 |
Y | 年份,四位数字 | 1999或2003 |
y | 年份,两位数字 | 99或03 |
表时间 | ||
a | 小写的am和pm | am或pm |
A | 大写的AM和PM | 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 | 微秒 | 654321 |
v | 毫秒 | 654 |
表时区 | ||
e | 时区标识符 | UTC,GMT,Atlantic/Arozes |
I (大写的i) | 是否为夏令时 | 1(夏令时)0(非夏令时) |
O | 与格林威治时间 (GMT) 的小时和分钟之间的差值,无冒号 | +02 00 |
P | 与格林威治时间 (GMT) 的小时和分钟之间的差值,有冒号 | +02:00 |
T | 时区缩写 | EST,MDT |
Z | 时区偏移量(以秒为单位)。UTC 以西时区的偏移量始终为负数,而 UTC 以东的时区的偏移量始终为正值。 | -43200到50400 |
标准格式 | ||
c | ISO 8601 格式日期 | 2004-02-12T15:19:21+00:00 |
r | RFC 2822 格式日期 | Thu, 21 Dec 2000 16:01:07 +0200 |
U | 自Unix时间戳(January 1 1970 00:00:00 GMT)以来的秒数 |
更多内容请看php官方文档