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的ob_start();控制您的浏览器cache!
Nov 25 PHP
PHP高级对象构建 多个构造函数的使用
Feb 05 PHP
PHP面向对象的进阶学习(抽像类、接口、final、类常量)
May 07 PHP
php 操作调试的方法
Jul 12 PHP
5种PHP创建数组的实例代码分享
Jan 17 PHP
ThinkPHP模板范围判断输出In标签与Range标签用法详解
Jun 30 PHP
Laravel中扩展Memcached缓存驱动实现使用阿里云OCS缓存
Feb 10 PHP
Codeigniter的dom类用法实例
Jun 26 PHP
php编程每天必学之验证码
Mar 03 PHP
Laravel路由设定和子路由设定实例分析
Mar 30 PHP
详解php中serialize()和unserialize()函数
Jul 08 PHP
详解PHP中的外观模式facade pattern
Feb 05 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实现单链表的实例代码
2013/03/22 PHP
thinkPHP批量删除的实现方法分析
2016/11/09 PHP
php判断数组是否为空的实例方法
2020/05/10 PHP
锋利的jQuery 要点归纳(二) jQuery中的DOM操作(下)
2010/03/23 Javascript
由简入繁实现Jquery树状结构的方法(推荐)
2016/06/10 Javascript
Javascript实现图片不间断滚动的代码
2016/06/22 Javascript
Bootstrap CDN和本地化环境搭建
2016/10/26 Javascript
拖动时防止选中
2017/02/03 Javascript
分分钟学会vue中vuex的应用(入门教程)
2017/09/14 Javascript
浅谈vue 单文件探索
2018/09/05 Javascript
解决Layui数据表格的宽高问题
2019/09/28 Javascript
基于Nuxt.js项目的服务端性能优化与错误检测(容错处理)
2019/10/23 Javascript
[02:59]DOTA2完美大师赛主赛事第三日精彩集锦
2017/11/25 DOTA
python学习笔记:字典的使用示例详解
2014/06/13 Python
Python程序员开发中常犯的10个错误
2014/07/07 Python
修复 Django migration 时遇到的问题解决
2018/06/14 Python
python发送告警邮件脚本
2018/09/17 Python
CentOS 7下安装Python3.6 及遇到的问题小结
2018/11/08 Python
在macOS上搭建python环境的实现方法
2019/08/13 Python
用openCV和Python 实现图片对比,并标识出不同点的方式
2019/12/19 Python
python 引用传递和值传递详解(实参,形参)
2020/06/05 Python
英国电视和家用电器购物网站:rlrdistribution.co.uk
2018/11/20 全球购物
上海雨人软件技术开发有限公司测试题
2015/07/14 面试题
评析教师个人的自我评价
2014/02/19 职场文书
材料员岗位职责
2014/03/13 职场文书
机关节能减排实施方案
2014/03/17 职场文书
英语自我介绍演讲稿
2014/09/01 职场文书
党员干部观看《周恩来四个昼夜》思想汇报
2014/09/10 职场文书
自荐信格式范文
2015/03/04 职场文书
高中生思想道德自我评价
2015/03/09 职场文书
聚众斗殴罪辩护词
2015/05/21 职场文书
虎兄虎弟观后感
2015/06/12 职场文书
单位接收证明格式
2015/06/18 职场文书
SQL注入详解及防范方法
2021/12/06 MySQL
零基础学java之带参数以及返回值的方法
2022/04/10 Java/Android
Redis主从复制操作和配置详情
2022/09/23 Redis