开发者社区> suboysugar> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

PHP中比较两个时间的大小与日期的差值

简介: 在这里我们全用到时间戳 mktime(hour,minute,second,month,day,year,[is_dst])     其参数可以从右向左省略,任何省略的参数都会被设置成本地日期和时间的当前值。
+关注继续查看

在这里我们全用到时间戳

mktime(hour,minute,second,month,day,year,[is_dst])
     其参数可以从右向左省略,任何省略的参数都会被设置成本地日期和时间的当前值。
   

参数 描述
 hour 可选。规定小时。
 minute 可选。规定分钟。
 second 可选。规定秒。
 month 可选。规定用数字表示的月。
 day 可选。规定天。
 year 可选。规定年。在某些系统上,合法值介于 1901 – 2038 之间。不过在 php教程 5 中已经不存在这个限制了。
 is_dst 可选。如果时间在日光节约时间(dst)期间,则设置为1,否则设置为0,若未知,则设置为-1。自 5.1.0 起,is_dst 参数被废弃。因此应该使用新的时区处理特性

   
 在日常生活中我们要经常比较时间的早晚,对于我们来说判断时间的大小很简单。但是时间的比较不只是单纯的数字大小的比较,因此相对来说还是比较复杂。那么在php中通过什么方式来比较两个时间的大小呢?

    要比较两个时间的大小,我们需要将时间转化为时间戳格式,然后再进行比较这是最常用的方法。常用到的函数是:strtotime()
     语法格式:strtotime(time,now)
     如果time是绝对时间,则now参数不起作用
     如果time是相对时间,则相对应的参数则对应函数就是now来提供,如果没有提供now参数,那么相对应的时间就是当前的本地时间。

实例:比较两个绝对时间的大小
 代码:
<?php
 $zero1=date(“y-m-d h:i:s”);
 $zero2=”2010-11-29 21:07:00′;
 echo “zero1的时间为:”.$zero1.”<br>”;
 echo “zero2的时间为:”.$zero2.”<br>”;
 if(strtotime($zero1)<strtotime($zero2)){
  echo “zero1早于zero2′;
 }else{
  echo “zero2早于zero1′;
 }
 ?>


 输出结果:
 zero1的时间为:2010-11-30 21:12:55
 zero2的时间为:2010-11-29 21:07:00
 zero2早于zero1

注:可以根据实例发散思维

    计算两个日期的差值
     奥运会倒计时,亚运会倒计时,生日倒计时这些倒计时都可以通过计算两个日期的差值来实现,同样需要用到strottime()函数。
     实现倒计时需要将两个时间的差值整数化,需要用到函数ceil()
     ceil()函数的作用是求不小于给定实数的最小整数

实例:倒计时小程序
 实例代码:
<?php
 $zero1=strtotime (date(“y-m-d h:i:s”)); //当前时间
 $zero2=strtotime (“2011-2-03 24:00:00′);  //过年时间
 $guonian=ceil(($zero2-$zero1)/86400); //60s*60min*24h
 echo “离过年还有<strong>$guonian</strong>天!”;
 ?>


 输出结果:
 离过年还有66天!

strtotime()函数解析

定义和用法
 strtotime() 函数将任何英文文本的日期时间描述解析为 unix 时间戳。

语法
 strtotime(time,now)参数 描述
 time 规定要解析的时间字符串。
 now 用来计算返回值的时间戳。如果省略该参数,则使用当前时间。

说明
 该函数预期接受一个包含美国英语日期格式的字符串并尝试将其解析为 unix 时间戳(自 january 1 1970 00:00:00 gmt 起的秒数),其值相对于 now 参数给出的时间,如果没有提供此参数,则用系统当前时间

如何联系我:【万里虎】www.bravetiger.cn 【QQ】3396726884 (咨询问题100元起,帮助解决问题500元起) 【博客】http://www.cnblogs.com/kenshinobiy/

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
PHP如何根据当前时间加,一天、一周、一月、一年
PHP如何根据当前时间加,一天、一周、一月、一年
0 0
php+redis实现延迟队列(订单超时未支付。会员时间过期)
php+redis实现延迟队列(订单超时未支付。会员时间过期)
0 0
PHP中关于时间(戳)、时区、本地时间、UTC时间等的梳理
PHP中关于时间(戳)、时区、本地时间、UTC时间等的梳理 在PHP开发中,我们经常会在时间问题上被搞糊涂,比如我们希望显示一个北京时间,但是当我们使用date函数进行输出时,却发现少了8个小时。几乎所有的php猿类都必须对php中几个重要的时间转换等方法进行研究。
1376 0
php获取一些时间实现方法(实践)
php获取一些时间实现方法(实践) 这几天在开发的时候遇到的一些时间上的问题,整理了一下,分享给大家,可以看看,有需要的话可以利用一下。 1.获取上个月第一天及最后一天. echo date('Y-m-01', strtotime('-1 month')); echo "<br/>".
980 0
+关注
suboysugar
目前为自由职业者,从事BA业务分析和互联网产品设计等工作,本人先后在中关村在线、中国工商银行和神州数码工作。拥有互联网,移动互联网,软件公司等开发经历。计算机本科毕业,8年互联网和软件行业经验。
文章
问答
文章排行榜
最热
最新
相关电子书
更多
PHP安全开发_从白帽角度做安全
立即下载
PHP在机器学习上的应用及云深度学习平台的架构设计与实现
立即下载
PHP与APM_技术内幕和最佳实践
立即下载