一、获取当前时间戳
方法1:通过time函数
time();
方法2:通过$_SERVER中的REQUEST_TIME元素
$_SERVER['REQUEST_TIME'];
方法3:通过strtotime函数
strtotime('now'));
二、获取当前时间
通过date函数格式化时间戳
echo date('Y-m-d h:i:s', time()); // 2018-10-3 15:57:05
三、时区问题
上述方法都存在时区问题,具体解决:
方法一:php.ini中修改为中国时区
date.timezone = PRC
方法二:在php文件中临时设置为中国时区
date_default_timezone_set('PRC');
php获取当前时间、时间戳
首先需要知道的是在php中获取时间方法是date(),在php中获取时间戳方法有time()、strtotime()。下面分别说明。
date() 格式为:date($format, $timestamp),format为格式、timestamp为时间戳(可选)。
time() 返回当前时间的 Unix 时间戳,没有参数。
strtotime($time, $now) 将任何英文文本的日期时间描述解析为 Unix 时间戳。$time 为必填,规定要解析的时间字符串;$now 用来计算返回值的时间戳,如果省略该参数,则使用当前时间。
date($format)用法举例:
echo date('Y-m-d');输出结果:2018-10-03
echo date('Y-m-d H:i:s');输出结果:2018-10-03 23:00:00
echo date('Y-m-d', time());输出结果:2018-10-03 23:00:00(结果同上,只是多了一个时间戳参数)(时间戳转换为日期格式的方法)
echo date('Y').'年'.date('m').'月'.date('d').'日',输出结果:2018年10月3日
举例就这几个,只是格式的变动而已,下面是字符串格式中各个字母的含义:
a - "am" 或是 "pm"
A - "AM" 或是 "PM"
d - 几日,二位数字,若不足二位则前面补零; 如: "01" 至 "31"
D - 星期几,三个英文字母; 如: "Fri"
F - 月份,英文全名; 如: "January"
h - 12 小时制的小时; 如: "01" 至 "12"
H - 24 小时制的小时; 如: "00" 至 "23"
g - 12 小时制的小时,不足二位不补零; 如: "1" 至 12"
G - 24 小时制的小时,不足二位不补零; 如: "0" 至 "23"
i - 分钟; 如: "00" 至 "59"
j - 几日,二位数字,若不足二位不补零; 如: "1" 至 "31"
l - 星期几,英文全名; 如: "Friday"
m - 月份,二位数字,若不足二位则在前面补零; 如: "01" 至 "12"
n - 月份,二位数字,若不足二位则不补零; 如: "1" 至 "12"
M - 月份,三个英文字母; 如: "Jan"
s - 秒; 如: "00" 至 "59"
S - 字尾加英文序数,二个英文字母; 如: "th","nd"
新闻热点
疑难解答