php时间戳与日期格式比大小,比较两个时间戳的大小

比较两个时间戳的大小

(实例位置:配套资源\SL\01\006  视频位置:配套资源\SP\01\006)

实例说明

在一些程序中经常需要将两个时间进行比较,但是由于时间是由年、月、日、时、分、秒组成的,比较起来很不方便,这时可以把时间转换成时间戳来进行比较。本实     例通过date()函数、strtotime()函数和ceil()函数实现比较两个时间戳的大小,运行结果如图1.6所示。

ad3cab147c5fbcc059033d8a55598909.png

图1.6  比较两个时间戳的大小

实现过程

具体步骤如下:

(1)创建PHP脚本文件。首先对PHP语言中的时区进行设置,将时区更改为中国上海时区。然后通过strtotime()函数获取当前时间的UNIX时间戳,并与指定的时间戳进行算术运算。最后,将时间戳运算结果转换为天数,通过ceil()函数进行取整运算并输出结果。其代码如下:

php

date_default_timezone_set("Asia/ShangHai");         //将格林威治时间设置为本地时间

$a=strtotime("now");                              //取得当前时间戳

$b=strtotime("05 May 2011");                      //取得2011年5月5号的时间戳

echo $a."\n";

echo "输出日期".date("Y-m-d H:i:s",$a)."
";      //取得以$a为时间点的时间

echo $b."\n";

echo "输出日期".date("Y-m-d H:i:s",$b)."
";      //取得以$b为时间点的时间

$c=ceil(($a - $b)/(3600*24));                         //计算相差天数

echo "距2011年5月5号已过去".$c."天";

?>

(2)将该文件存储于\MR\01\006文件夹下,并命名为index.php。运行结果如图1.6所示。

多学两招:

有效的时间戳通常从Fri, 13 Dec 1901 20:45:54 GMT 到 Tue, 19 Jan 2038 03:14:07 GMT(对应于32位有符号整数的最小值和最大值)。不是所有的平台都支持负的时间戳,那么日记范围就被限制为不能早于UNIX纪元。这意味着在1970年1月1日之前的日期将不能用在Windows、某些Linux版本以及几个其他的操作系统中。

技术要点

本实例主要是通过strtotime()函数将时间转换为UNIX时间戳,并进行相关取整运算而实现的。其中涉及相关函数语法如下。

(1)strtotime()函数:本函数预期接受一个包含英文日期格式的字符串并尝试将其解析为UNIX时间戳。

int strtotime( string time [, int now]);

该函数有两个参数。如果参数time的格式是绝对时间,则now参数不起作用;如果参数time的格式是相对时间,其对应的时间就是参数now来提供的,当没有提供参数now时,对应的时间就为当前时间。如果解析失败,则返回false。在PHP5.1.0之前的版本中,本函数在失败时返回-1。

(2)ceil()函数:返回不小于value的下一个整数。

float ceil ( float value);

脚下留神:

在UNIX系统中,日期与时间表示为自1970年1月1日零点起到当前时刻的秒数,这种时间称为UNIX时间戳,以32位二进制表示。其中,1970年1月1日零点称为UNIX世纪元。UNIX时间戳提供了一种统一、简洁的时间表示方式,在不同的操作系统中均支持这种时间表示方式,同一时间在UNIX和Windows中均以相同的UNIX时间戳表示,所以不需要在不同的系统中进行转换。同时,UNIX时间戳是一个时间差,与时区没有关系,无论当前PHP中使用的是何种时区,其UNIX时间戳都是唯一的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值