php UNIX时间戳用法详解

本文实例讲述了PHP UNIX时间戳用法分享给大家供大家参考,具体如下:

时间戳是文件属性中的创建、修改、和访问时间。数字时间戳服务是Web网站安全服务项目之一,能提供电子文件的日期和时间信息的安全保护。

时间戳的优点是:

可用变化的加密数值,防止数值被窃取后非法重复利用,起到加密的作用。时间戳主要依赖于时间,在约定的一段时间内产生唯一的一个数值。

UNIX时间戳

在UNIX系统中,日期与时间表示为自1970年1月1日零点起到当前时刻的秒数,这种时间被称为UNIX时间戳,以32位二进制数表示。在不同的操作系统中均支持这种时间表示方式,同一时间在UNIX和Windows中均以相同的UNIX时间戳表示,所以不需要在不同的系统中进行转换。

目前UNIX时间戳是以32位二进制数表示,32位二进制数值范围为(-2147483648~+2147483647),由于系统不支持负的时间戳,因此,目前UNIX时间戳能表示的最大时间为2038年1月19日3点14分7秒,该时刻的时间戳为2147483647。于该时间后,需要扩展UNIX时间戳的二进制位数。

PHP获取指定日期的时间戳

PHP中应用mktime()函数一个时间转换成为UNIX时间戳值。

语法如下

mktime(hour,minute,second,month,day,year,is_dst)

display: table; border-collapse: collapse; font: 14px/26px Arial; white-space: normal; margin-bottom: 10px; letter-spacing: normal; color: rgb(0,0); word-spacing: 0px; -webkit-text-stroke-width: 0px"> ottom: rgb(153,153,153) 1px solid; min-width: 25px; border-left: rgb(153,153) 1px solid; padding-bottom: 5px; min-height: 25px; padding-left: 12px; padding-right: 16px; height: 25px; word-break: break-all; border-top: rgb(153,153) 1px solid; border-right: rgb(153,153) 1px solid; padding-top: 5px">参数 ottom: rgb(153,153) 1px solid; padding-top: 5px">hourottom: rgb(153,153) 1px solid; padding-top: 5px">可选。规定小时。ottom: rgb(153,153) 1px solid; padding-top: 5px">minuteottom: rgb(153,153) 1px solid; padding-top: 5px">可选。规定分钟。ottom: rgb(153,153) 1px solid; padding-top: 5px">secondottom: rgb(153,153) 1px solid; padding-top: 5px">可选。规定秒。ottom: rgb(153,153) 1px solid; padding-top: 5px">monthottom: rgb(153,153) 1px solid; padding-top: 5px">可选。规定用数字表示的月。ottom: rgb(153,153) 1px solid; padding-top: 5px">dayottom: rgb(153,153) 1px solid; padding-top: 5px">可选。规定天。ottom: rgb(153,153) 1px solid; padding-top: 5px">yearottom: rgb(153,153) 1px solid; padding-top: 5px">可选。规定年。在某些系统上,合法值介于 1901 - 2038 之间。不过在 PHP 5 中已经不存在这个限制了。ottom: rgb(153,153) 1px solid; padding-top: 5px">is_dstottom: rgb(153,153) 1px solid; padding-top: 5px">

ottom: 0px; margin: 5px 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">可选。如果时间在日光节约时间(DST)期间,则设置为1,否则设置为0,若未知,则设置为-1。

ottom: 0px; margin: 5px 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">自 5.1.0 起,is_dst 参数被废弃。因此应该使用新的时区处理特性。

例如:

rush:PHP;"> echo "时间戳:".mktime().'
';//返回当前时间戳 echo "任意日期:".date("Y-m-d",mktime(0,2,21,1996)).'
'; echo "当前日期: ".date("Y-m-d",mktime()).'
';

运行结果为:

rush:PHP;"> 时间戳:1458979695 任意日期:1996-02-21 当前日期: 2016-03-26

获取当前时间戳

PHP通过time()函数获取当前的UNIX时间戳。

语法如下:

int time(void);

函数没有参数,返回值为UNIX时间戳的整数值。

例如:

rush:PHP;"> echo time()."
";//输出当前时间戳 $nextWeek = time()+(7*24*60*60);//一个星期七天,一天24小时,一个小时60分,一分60秒 echo "Now: ".date("Y-m-d")."
"; echo "Next Week: ".date("Y-m-d",$nextWeek);

运行结果为

rush:PHP;"> 1458980073 Now: 2016-03-26 Next Week: 2016-04-02

将英文文本的日期时间描述解析为UNIX时间戳

strtotime() 函数将任何英文文本的日期时间描述解析为 Unix 时间戳。

语法

strtotime(time,Now)

ottom: rgb(153,153) 1px solid; padding-top: 5px">描述
display: table; border-collapse: collapse; font: 14px/26px Arial; white-space: normal; margin-bottom: 10px; letter-spacing: normal; color: rgb(0,0); word-spacing: 0px; -webkit-text-stroke-width: 0px"> ottom: rgb(153,153) 1px solid; padding-top: 5px">参数 ottom: rgb(153,153) 1px solid; padding-top: 5px">timeottom: rgb(153,153) 1px solid; padding-top: 5px">规定要解析的时间字符串。ottom: rgb(153,153) 1px solid; padding-top: 5px">Nowottom: rgb(153,153) 1px solid; padding-top: 5px">用来计算返回值的时间戳。如果省略该参数,则使用当前时间。 例如:

rush:PHP;"> echo(strtotime("Now")).'
'; echo(strtotime("3 October 2005")).'
'; echo(strtotime("+5 hours")).'
'; echo(strtotime("+1 week")).'
'; echo(strtotime("+1 week 3 days 7 hours 5 seconds")).'
'; echo(strtotime("next Monday")).'
'; echo(strtotime("last Sunday")).'
';

运行结果为:

rush:PHP;"> 1458980310 1128268800 1458998310 1459585110 1459869515 1459094400 1458403200

如果想要查看这个时间戳对应的时间,例如:

rush:PHP;"> echo date("Y-m-d H:i:s",strtotime("Now")).'
'; echo date("Y-m-d H:i:s",strtotime("next Thursday")).'
';

运行结果为:

rush:PHP;"> 2016-03-26 16:21:32 2016-03-31 00:00:00

PS:本站还提供了一个Unix时间戳转换工具,包含了各种常见语言针对时间戳的操作方法,提供给大家参考:

Unix时间戳(timestamp)转换工具:

更多关于PHP相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》及《

希望本文所述对大家PHP程序设计有所帮助。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返回预支付订单号的接口,目前微信支付所有场景均使用这一接口。下面介绍的是其中NATIVE的支付实现流程与PC端实现扫码支付流程
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返回预支付订单号的接口,目前微信支付所有场景均使用这一接口。下面介绍的是其中APP的支付的配置与实现流程
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户信息这个功能的开发流程。 配置 1.首先得在微信公众平台申请一下微信小程序账号并获取到小程序的AppID和AppSecret https://mp.weixin.qq.com/cgi-bin/loginpage?url=%2Fwxamp%2F
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一款开源且免费商用的后台开发框架,它基于ThinkPHP和Bootstrap两大主流技术构建的极速后台开发框架,它有着非常完善且强大的功能和便捷的开发体验,使我逐渐喜欢上了它。
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛,就离不开通讯了,然后我就想到了长连接。这里本人用的是GatewayWorker框架。
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返回预支付订单号的接口,目前微信支付所有场景均使用这一接口。下面介绍的是其中JSAPI的支付实现流程
服务器优化必备:深入了解PHP8底层开发原理
Golang的网络编程:如何快速构建高性能的网络应用?
Golang和其他编程语言的对比:为什么它的开发效率更高?
PHP8底层开发原理揭秘:如何利用新特性创建出色的Web应用
将字符重新排列以形成回文(如果可能)在C++中
掌握PHP8底层开发原理和新特性:创建高效可扩展的应用程序
服务器性能优化必学:掌握PHP8底层开发原理
PHP8新特性和底层开发原理详解:优化应用性能的终极指南
将 C/C++ 代码转换为汇编语言
深入研究PHP8底层开发原理:创建高效可扩展的应用程序
C++程序查找法向量和迹
PHP8底层开发原理实战指南:提升服务器效能
重排数组,使得当 i 为偶数时,arr[i] >= arr[j],当 i 为奇数时,arr[i] <= arr[j],其中 j < i,使用 C++ 语言实现
Golang的垃圾回收:为什么它可以减少开发人员的负担?
ottom: rgb(153,153) 1px solid; padding-top: 5px">描述