PHP时间函数使用详解


Posted in PHP onMarch 21, 2019

PHP开发中,关于时间函数的使用基本上可以说是无处不在,而PHP中操作时间的方法也很多,比如PHP时间戳、日期与时间戳之间的转换、获取当前日期、当前时间之前或之后的时间等等,下面我们详细讲述一下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');输出结果:2014-12-16
  • echo date('Y-m-d H:i:s');输出结果:2014-12-16 23:00:00
  • echo date('Y年m月d日');输出结果:2014年12月16日

要实现输出怎样的日期格式其实只需要按规则修改一下即可,下面是字符串格式中各个字母的含义:

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();输出结果:1418664250(返回的结果即当前的时间戳)

strtotime($time)用法举例:

echo strtotime('2014-12-16'); 输出结果:1418688000,作用其实是把2014-12-16 00:00:00转化为 UNIX 时间戳

strtotime()还有个很强大的用法,参数可加入对于数字的操作、年月日周英文字符,示例如下:

  • echo date('Y-m-d H:i:s',strtotime('+1 day'));输出结果:2014-12-17 23:30:33(输出明天此时的时间)
  • echo date('Y-m-d H:i:s',strtotime('-1 day'));输出结果:2014-12-15 23:30:33(昨天此时的时间)
  • echo date('Y-m-d H:i:s',strtotime('+1 week'));输出结果:2014-12-22 23:30:33(获取下个星期此时的时间)
  • echo date('Y-m-d H:i:s',strtotime('next Thursday'));输出结果:2014-12-18 00:00:00(获取下个星期四凌晨的时间)
  • echo date('Y-m-d H:i:s',strtotime('last Thursday'));输出结果:2014-12-11 00:00:00(获取上个星期四凌晨的时间)

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

php获取当前时间的毫秒数

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

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

在PHP里面,通常获取到的时间会与当前时间相差8小时,这是由于在PHP的配置里默认是以0时区的时间为基准,而我们位于东8区,与0时区相差八小时,所以在实际开发中使用到时间的时间,要特别注意设置好时区,设置的方法主要有下面的几种:

1.在php.ini中找到date.timezone,将它的值改成 Asia/Shanghai,即 date.timezone = Asia/Shanghai(将当前时区设置为亚洲上海时区)

2.在程序开始的地方添加 date_default_timezone_set('Asia/Shanghai');即可,当然对于中国的时区,我们也可以使用date_default_timezone_set('PRC');来设置

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

PHP 相关文章推荐
也谈截取首页新闻 - 范例
Oct 09 PHP
mysql5写入和读出乱码解决
Nov 25 PHP
php中变量及部分适用方法
Mar 27 PHP
PHP反射类ReflectionClass和ReflectionObject的使用方法
Nov 13 PHP
php自动识别文件编码并转换为UTF-8的方法
Jun 12 PHP
destoon调用discuz论坛中带图片帖子的实现方法
Aug 21 PHP
PHP date函数常用时间处理方法
May 11 PHP
php冒泡排序与快速排序实例详解
Dec 07 PHP
PHP二进制与字符串之间的相互转换教程
Oct 14 PHP
php文件上传、下载和删除示例
Aug 28 PHP
利用PHP判断是否是连乘数字串的方法示例
Jul 03 PHP
浅谈PHP中如何实现Hook机制
Nov 14 PHP
PHP抽象类与接口的区别详解
Mar 21 #PHP
PHP CURL使用详解
Mar 21 #PHP
使用ucenter实现多站点同步登录的讲解
Mar 21 #PHP
PHP设计模式之工厂模式(Factory Pattern)的讲解
Mar 21 #PHP
使用PHP反射机制来构造"CREATE TABLE"的sql语句
Mar 21 #PHP
启用OPCache提高PHP程序性能的方法
Mar 21 #PHP
Discuz不使用插件实现简单的打赏功能
Mar 21 #PHP
You might like
《PHP边学边教》(01.开篇――准备工作)
2006/12/13 PHP
php判断两个浮点数是否相等的方法
2015/03/14 PHP
js中几种去掉字串左右空格的方法
2006/12/25 Javascript
在IE上直接编辑网页内容的js代码(IE地址栏js)
2009/04/27 Javascript
JavaScipt中的Math.ceil() 、Math.floor() 、Math.round() 三个函数的理解
2010/04/29 Javascript
onclick与listeners的执行先后问题详细解剖
2013/01/07 Javascript
javascript实现在某个元素上阻止鼠标右键事件的方法和实例
2014/08/12 Javascript
JQuery选择器、过滤器大整理
2015/05/26 Javascript
jquery操作select元素和option的实例代码
2016/02/03 Javascript
Seajs 简易文档 提供简单、极致的模块化开发体验
2016/04/13 Javascript
Vue一次性简洁明了引入所有公共组件的方法
2018/11/28 Javascript
JavaScript函数式编程(Functional Programming)箭头函数(Arrow functions)用法分析
2019/05/22 Javascript
vue通过video.js解决m3u8视频播放格式的方法
2019/07/30 Javascript
使用原生JS实现火锅点餐小程序(面向对象思想)
2019/12/10 Javascript
vue-quill-editor的使用及个性化定制操作
2020/08/04 Javascript
Python中对象迭代与反迭代的技巧总结
2016/09/17 Python
python分析作业提交情况
2017/11/22 Python
Django学习笔记之ORM基础教程
2018/03/27 Python
python使用folium库绘制地图点击框
2018/09/21 Python
Flask框架中request、请求钩子、上下文用法分析
2019/07/23 Python
Python中关于浮点数的冷知识
2019/09/22 Python
如何将tensorflow训练好的模型移植到Android (MNIST手写数字识别)
2020/04/22 Python
详解Python中的GIL(全局解释器锁)详解及解决GIL的几种方案
2021/01/29 Python
python 使用OpenCV进行简单的人像分割与合成
2021/02/02 Python
娇韵诗加拿大官网:Clarins加拿大
2017/11/20 全球购物
第二层交换机和路由器的区别?第三层交换机和路由器的区别?
2013/05/23 面试题
蔬菜基地的创业计划书
2014/01/06 职场文书
元旦晚会邀请函
2014/02/01 职场文书
学习之星事迹材料
2014/05/17 职场文书
乐观自信演讲稿范文
2014/05/21 职场文书
国际会计专业求职信
2014/08/04 职场文书
县长群众路线对照检查材料思想汇报
2014/10/02 职场文书
2015年小班保育员工作总结
2015/05/27 职场文书
手残删除python之后的补救方法
2021/06/26 Python
Java练习之潜艇小游戏的实现
2022/03/16 Java/Android
SQL Server内存机制浅探
2022/04/06 SQL Server