PHP获取当前系统时间的方法小结


Posted in PHP onOctober 03, 2018

一、获取当前时间戳

方法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"  
t - 指定月份的天数; 如: "28" 至 "31"  
U - 总秒数  
w - 数字型的星期几,如: "0" (星期日) 至 "6" (星期六)  
Y - 年,四位数字; 如: "1999"  
y - 年,二位数字; 如: "99"  
z - 一年中的第几天; 如: "0" 至 "365"

time()用法举例:

time();输出结果:1332427715(返回的结果即当前的时间戳)
strtotime($time)用法举例:
echo strtotime('2012-03-22');输出结果:1332427715(此处结果为随便写的,仅作说明使用)
echo strtotime(date('Y-d-m'));输出结果:(结合date(),结果同上)(时间日期转换为时间戳)
strtotime()还有个很强大的用法,参数可加入对于数字的操作、年月日周英文字符,示例如下:
echo date('Y-m-d H:i:s',strtotime('+1 day'));输出结果:2012-03-23 23:30:33(会发现输出明天此时的时间)
echo date('Y-m-d H:i:s',strtotime('-1 day'));输出结果:2012-03-21 23:30:33(昨天此时的时间)
echo date('Y-m-d H:i:s',strtotime('+1 week'));输出结果:2012-03-29 23:30:33(下个星期此时的时间)
echo date('Y-m-d H:i:s',strtotime('next Thursday'));输出结果:2012-03-29 00:00:00(下个星期四此时的时间)
echo date('Y-m-d H:i:s',strtotime('last Thursday'));输出结果:2012-03-15 00:00:00(上个星期四此时的时间)

以上举例就这么多了,更多的自己去变通研究吧,strtotime()方法可以通过英文文本的控制Unix时间戳的显示,而得到需要的时间日期格式。

php获取当前时间的毫秒数

php本身没有提供返回毫秒数的函数,但提供了microtime()方法,它会返回一个数组,包含两个元素:一个是秒数、一个是小数表示的毫秒数,我们可以通过此方法获取返回的毫秒数,方法如下:

function getMillisecond(){
	list($s1,$s2)=explode(' ',microtime());
	return (float)sprintf('%.0f',(floatval($s1)+floatval($s2))*1000);

取的当前时间与实际时间相差8小时的解决方法

实际开发中经常会碰到获取的时间与当前系统实际时间相差8个小时,这是因为时区设置问题,对于这个问题,有下面的几种解决办法:

1.在php.ini中找到date.timezone,将它的值改成 Asia/Shanghai,即 date.timezone = Asia/Shanghai(将当前时区设置为亚洲上海时区)
2.在程序开始的地方添加 date_default_timezone_set('Asia/Shanghai');即可。
两种方式都可以,看个人喜好。

PHP 相关文章推荐
PHP去除数组中重复的元素并按键名排序函数
Aug 18 PHP
PHP初学者最感迷茫的问题小结
Mar 27 PHP
PHP判断搜索引擎蜘蛛并自动记忆到文件的代码
Feb 04 PHP
php url路由入门实例
Apr 23 PHP
PHP curl 抓取AJAX异步内容示例
Sep 09 PHP
PHP中$_SERVER使用说明
Jul 05 PHP
PHP中字符串长度的截取用法示例
Jan 12 PHP
Laravel中Facade的加载过程与原理详解
Sep 22 PHP
PHP基于关联数组20行代码搞定约瑟夫问题示例
Nov 07 PHP
Yii 访问 Gii(脚手架)时出现 403 错误
Jun 06 PHP
PHP让网站移动访问更加友好方法
Feb 14 PHP
使用tp框架和SQL语句查询数据表中的某字段包含某值
Oct 18 PHP
PHP格式化显示时间date()函数代码
Oct 03 #PHP
php实现微信企业转账功能
Oct 02 #PHP
PHP实现微信退款功能
Oct 02 #PHP
PHP实现微信申请退款功能
Oct 01 #PHP
微信企业转账之入口类分装php代码
Oct 01 #PHP
PHP实现微信对账单处理
Oct 01 #PHP
php提取微信账单的有效信息
Oct 01 #PHP
You might like
树型结构列出指定目录里所有文件的PHP类
2006/10/09 PHP
php 文件状态缓存带来的问题
2008/12/14 PHP
php堆排序(heapsort)练习
2013/11/13 PHP
php加密之discuz内容经典加密方式实例详解
2017/02/04 PHP
php workerman定时任务的实现代码
2018/12/23 PHP
Laravel 默认邮箱登录改成用户名登录的实现方法
2019/08/12 PHP
PHPstorm启用自动换行的方法详解(IDE)
2020/09/17 PHP
基于jquery创建的一个图片、视频缓冲的效果样式插件
2012/08/28 Javascript
js获取当前日期代码适用于网页头部
2013/06/27 Javascript
网页收藏夹显示ICO图标(代码少)
2015/08/04 Javascript
Node.js重新刷新session过期时间的方法
2016/02/04 Javascript
JavaScript中日期函数的相关操作知识
2016/08/03 Javascript
JavaScript中 ES6 generator数据类型详解
2016/08/11 Javascript
javascript 网页进度条简单实例
2017/02/22 Javascript
promise和co搭配生成器函数方式解决js代码异步流程的比较
2018/05/25 Javascript
webuploader分片上传的实现代码(前后端分离)
2018/09/10 Javascript
从零开始搭建vue移动端项目到上线的步骤
2018/10/15 Javascript
javascript中数组的常用算法深入分析
2019/03/12 Javascript
浅谈对于“不用setInterval,用setTimeout”的理解
2019/08/28 Javascript
整理 node-sass 安装失败的原因及解决办法(小结)
2020/02/19 Javascript
[01:07:34]DOTA2-DPC中国联赛定级赛 RNG vs Aster BO3第二场 1月9日
2021/03/11 DOTA
浅析Python中的赋值和深浅拷贝
2017/08/15 Python
python实现教务管理系统
2018/03/12 Python
python 去除txt文本中的空格、数字、特定字母等方法
2018/07/24 Python
Python利用逻辑回归模型解决MNIST手写数字识别问题详解
2020/01/14 Python
Python 序列化和反序列化库 MarshMallow 的用法实例代码
2020/02/25 Python
美国室内盆栽植物购买网站:Plants.com
2020/04/24 全球购物
Python如何实现单例模式
2016/06/03 面试题
老师推荐信
2013/10/28 职场文书
教学个人的自我评价分享
2014/02/16 职场文书
2014预备党员党课学习心得范文
2014/07/08 职场文书
经典演讲稿开场白
2014/08/25 职场文书
市级绿色学校申报材料
2014/08/25 职场文书
社区务虚会发言材料
2014/10/20 职场文书
2015秋季田径运动会广播稿
2015/08/19 职场文书
Linux中各个目录的作用与内容
2022/06/28 Servers