网站在政务新媒体建设,适合女孩做的网站,网站服务器用什么配置,wordpress文章推送到微信UNIX时间戳是保存日期和时间的一种紧凑简洁的方法#xff0c;是大多数UNIX系统中保存当前日期和时间的一种方法#xff0c;也是在大多数计算机语言中表示日期和时间的一种标准格式。以32位整数表示格林威治标准时间#xff0c;例如#xff0c;使用证书11230499325表示当前时…UNIX时间戳是保存日期和时间的一种紧凑简洁的方法是大多数UNIX系统中保存当前日期和时间的一种方法也是在大多数计算机语言中表示日期和时间的一种标准格式。以32位整数表示格林威治标准时间例如使用证书11230499325表示当前时间的时间戳。UNIX时间戳是从1970年1月1日零点UTC/GMT的午夜开始起到当前时间所经过的秒数。1970年1月1日零点作为所有日期计算的基础这个日期通常成为UNIX纪元。 因为UNIX时间戳是一个32位的数字格式所以特别适用于计算机处理例如计算两个时间点之间相差的天数。另外由于文化和地区的差异存在不同的时间格式以及时区的问题。所以UNIX时间戳也是根据一个时区进行标准化而设计的一种通用格式并且这种格式可以很容易地转换为任何格式。也因为UNIX时间戳是一个32位的证书表示的所以在处理1902年以前或2038年以后的事件将会遇到一些问题。另外在Windows下由于时间戳不能为负数所以使用PHP中提供的时间戳函数处理1970年之前的日期就会发生错误。要使PHP代码具有可移植性必须记住这一点。 将日期和时间转变成UNIX时间戳 在PHP中如果需要将日期和时间转变成UNIX时间戳可以调用mktime()函数。该函数的原型如下所示 int mktime([int hour [,int minute[,int second[,int month[,int day[int year]]]]]]) 该函数中所有参数都是可选的如果参数为空默认将当前时间转变成UNIX时间戳。这样和直接调用time()函数获取当前的UNIX时间戳功能相同。参数也可以从右向左省略任何省略的参数会被设置成本地日期和时间的当前值。如果只想转变日期对具体的时间不在乎可以将前三个转变时间的参数都设置为0.mktime()函数对于日期运算和验证非常有用它可以自动校政越界的输入。如下所示 1 2 3 4 5 6 ?php echo date(Y-m-d,mktime(0,0,0,12,36,2008)).\n; //日期超过31天计算后输出 2009-01-05 echo date(Y-m-d,mktime(0,0,0,14,1,2010)).\n; //月份超过12月计算后输出2011-02-01 echo date(Y-m-d,mktime(0,0,0,1,1,2012)).\n; //没有问题的转变输出结果2012-01-01 echo date(Y-m-d,mktime(0,0,0,1,1,99)).\n; //会将99年转变为1999年 1990-01-01 ? 如果有需要将任何英文文本的日期时间描述直接解析为UNIX时间戳可以使用strtotime()函数该函数的圆形如下所示 int strtotime(string time[,int now]) 函数strtotime()可以用英语的自然语言创建讴歌时刻的时间戳接受一个包含美国英语日期格式的字符串并尝试将其解析为UNIX时间戳自January 1 1970 00:00:00 GMT起的描述其值相对于now参数给出的时间如果没有提供次参数则用系统当前时间。该函数执行成功则返回时间戳否则返回FALSE。和mktime()的对比如下所示 1 2 3 4 5 6 ?php echo date(Y-m-d, strtotime(now)); //输出现在的时间戳 echo date(Y-m-d, strtotime(8 may 2012)); //输出2012-05-08 echo date(Y-m-d, strtotime(1 day)); //输出现在的日期加1天 echo date(Y-m-d, strtotime(last monday)); //输出2012-04-02 ? 下例通过使用strtotime()函数编写一个纪念日的倒计时程序来介绍一下该函数在项目开发中的实际应用示例代码如下所示 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ?php $now strtotime(now); //当前时间 $endtime strtotime(2014-08-18 08:08:08); //设定毕业时间转成时间戳 $second $endtime-$now; //获取毕业时间到现在时间的时间戳秒数 $year floor($second/3600/24/365); //从这个时间戳中换算出年头数 $temp $second-$year*365*24*3600; //从这个时间戳中去掉整年的秒数就剩下月份的秒数 $monthfloor($temp/3600/24/30); //从这个时间戳中共换算出月数 $temp$temp-$month*30*3600*24; //从时间戳中去掉整月的秒数就剩下天的描述 $day floor($temp/24/3600); //从这个时间戳中换算出剩余的天数 $temp$temp-$day*3600*24; //从这个时间戳中去掉整天的秒数就剩下小时的秒数 $hour floor($temp/3600); //从这个时间戳中换算出剩余的小时数 $temp$temp- $hour*3600; //从时间戳中去掉小时的秒数就剩下分的秒数 $minutefloor($temp/60); //从这个时间戳中换算出剩余的分数 $second1$temp-$minute*60; //最后只有剩余的秒数了 echo 距离培训毕业还有($year)年($month)月($day)天($hour)小时($minute)分($second1)秒。; ? 注意如果给定的年份是两位数字的格式则其值0-69表示2000-2069,70-100表示1970-2000。 日期的计算 在PHP中计算两个日期之间相隔的长度最简单的方法就是通过计算两个UNIX时间戳之差来获得。例如在PHP脚本中接收来自HTML表单用户提交的出生日期计算这个用户的年龄。如下所示 1 2 3 4 5 6 7 8 9 10 11 12 ?php //从表单中接收用户提交的出生日期中的年份、月份、天 $year 1981; $month 11; $day 05; $birthday mktime(0,0,0,$month,$day,$year); //将出生日期转变为UNIX时间戳 $nowdate time(); //调用time()函数获取当前时间的UNIX时间戳 $ageunix $nowdate -$birthday; //两个时间戳相减获取用户年龄的UNIX时间戳 $age floor($ageunix/3600/24/365); //将UNIX时间戳除以一年的秒数获取用户的年龄 echo 年龄$age; ? 在以上的脚本中调用mktime()函数将从用户出生日期转变为UNIX时间戳再调用time()函数获取当前时间的UNIX时间戳。因为这个日期的格式都是使用整数表示的所以可以将他们相减。又将计算后获取的UNIX时间戳除以一年的秒数将UNIX时间戳转变为以年度量的单位。 本文固定链接: http://php.ncong.com/php_course/date/unixdate.html 转载请注明: 恩聪php 2014年08月07日 于 恩聪PHP学习教程 发表 转载于:https://www.cnblogs.com/ncong/p/3909796.html