PHP获取时间日期星期的方法及解决12/24小时制、年份不完整显示的问题

时间:2022-09-07 12:36:53


1. php获取当前时间的方法


方法一:date 函数与 time 函数

echo date("y-m-d h:i:s",time());

或将 time 函数用一个变量表示

$time = time();
echo date("y-m-d h:i:s",$time);

运行结果示例:

17-01-01 11:25:26


方法二: $_server['server_time']


方法三: strftime

echo strftime ("%hh%m %a %d %b" ,time());

运行结果示例:

18h24 sunday 21 may

2. 解决php的时区不正确问题 

自PHP5.0开始,用PHP获取系统时间时,时间比北京时间默认少8个小时。

原因是PHP.ini中没有设置timezone时,PHP是使用的UTC时间,所以在中国时间要少8小时。

我们要想获取正确的时间就必须自己动手进行设置。


方法一:在php文件开始处加上

date_default_timezone_set('prc');

或者是

date_default_timezone_set("Asia/Shanghai");




方法二:修改 php.ini 文件

找到 apache 服务器的 php.ini 文件,ctrl+h 查找到 date.timezone 一行,将其修改为

date.timezone = prc;

或者是

date.timezone = Asia/Shanghai;

这里可以设置 Shanghai,Chongqing,Hong_Kong 等等,可就是没有 Beijing,不懂为什么。

注意:如果修改了 php.ini 必须要重启 apache 服务器,否则不起作用


3. 解决12小时/24小时制的问题

其实很简单,小写字母 h 表示 12 小时制的小时数,大写字母 H 表示 24 小时制的小时数

date("y-m-d h:i:s"); // 17-01-01 02:23:58 (12小时制)
date("y-m-d H:i:s"); // 17-01-01 14:23:58 (24小时制)


4. 解决输出年份不完整显示的问题

其实也很简单,小写字母 y 表示年份的简写,大写字母 Y 表示完整的年份

date("y-m-d h:i:s"); // 17-01-01 02:23:58
date("Y-m-d h:i:s"); // 2017-01-01 02:23:58


5. 显示 am / pm

a - 小写的午前和午后(am 或 pm)

date("h:i:sa");// 02:23:58pm


6. 获取当前是星期几

date("l");



----------------------------------------------------------------------------------------------------------------

总结:(取自 PHP 的 API 文档)

d - 表示月里的某天(01-31)
m - 表示月(01-12)
Y - 表示年(四位数)
l - 表示周里的某天

h - 带有首位零的 12 小时小时格式
i - 带有首位零的分钟
s - 带有首位零的秒(00 -59)
a - 小写的午前和午后(am 或 pm)

其他字符,比如 "/", "." 或 "-" 也可被插入字符中,以增加其他格式。