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

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: 在这里我们全用到时间戳 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/
目录
相关文章
|
2月前
|
Unix PHP 数据库
PHP日期和时间Date()函数获取当前时间
通过灵活运用 `date()`函数及其丰富的格式选项,PHP开发者可以轻松地在应用程序中处理和展示日期及时间信息。无论是需要精确到秒的完整时间戳,还是仅仅展示日期或时间的某一部分,`date()`函数都能胜任。理解并熟练应用这些格式化技巧,对于提升代码的可读性和维护性至关重要。
63 1
|
Unix PHP
PHP快速入门05-时间日期与时区,附30个常用案例
PHP中的日期和时间处理功能极其强大,包括了多种格式化、解析、比较等常用操作。本文主要对此讲解。另外给出30个高频使用示范。
189 0
|
存储 SQL 数据库连接
php查询数据(日期查询)和fastadmin的日期查询
php查询数据(日期查询)和fastadmin的日期查询
|
PHP
PHP日期时间运用十一:三种方法比较两个指定的日期
在之前的文章《PHP日期时间运用十:将秒数转成格式为“天时分秒”》中给大家介绍了怎么将秒数转成格式为“天时分秒”,那么本文继续开始PHP日期时间系列的文章~ 正如标题所述,本文主要内容是给大家介绍比较两个指定日期的三种方法! 假设我们给定两个日期(date1 和 date2),当两个日期的格式相同时,在 PHP 中比较这两个日期是很简单的,但是当两个日期的格式不同时就会出现一些问题。
456 0
|
PHP
PHP:laravel日期序列化自定义默认日期格式
PHP:laravel日期序列化自定义默认日期格式
228 0
|
监控 前端开发 PHP
php计算两个日期之间的间隔,避免导出大量数据
在做系统业务功能的时候,有的时候业务人员会进行超大范围地导出excel表格,导致内存、CPU占用飙升。 这对于系统的平滑运行不太友好,应该进行导出任务排队、限制范围等操作来控制频率、资源使用率。
118 0
|
PHP
php获取指定日期区间的所有日期,php输出指定范围的所有日期
php获取指定日期区间的所有日期,php输出指定范围的所有日期
281 0
|
NoSQL PHP Redis
php+redis实现延迟队列(订单超时未支付。会员时间过期)
php+redis实现延迟队列(订单超时未支付。会员时间过期)
231 0
php+redis实现延迟队列(订单超时未支付。会员时间过期)
|
PHP
PHP如何根据当前时间加,一天、一周、一月、一年
PHP如何根据当前时间加,一天、一周、一月、一年
276 0