加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

php中strtotime函数的坑

发布时间:2020-05-25 02:53:15 所属栏目:PHP 来源:互联网
导读:本文章向大家介绍php中strtotime函数的坑,主要包括php中strtotime函数的坑使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

问题:

//根据出生年月 计算年龄

$birthday = '0000-00-00';

$age = strtotime($birthday);

if($age === false){

return false;

}

list($y1,$m1,$d1) = explode("-",date("Y-m-d",$age));

$now = strtotime("now");

list($y2,$m2,$d2) = explode("-",$now));

$age = $y2 - $y1;

if((int)($m2.$d2) < (int)($m1.$d1))

$age -= 1;

此段代码导致php warning异常

local.ERROR:Anon-numericvalueencountered

原因:

$age = strtotime('0000-00-00'); 等于负数导致

strtotime—将任何字符串的日期时间描述解析为 Unix 时间戳

此函数自 January 1 1970 00:00:00 GMT 起的秒数,也就是说strotime('1970-01-01 00:00:00')为0,当小于1970-01-01时 返回的结果为负数

注意:

PHP 5.1.0 之前,不是所有的平台都支持负的时间戳,那么日记范围就被限制为不能早于 Unix 纪元。这意味着在 1970 年 1 月 1 日之前的日期将不能用在 Windows,一些 Linux 版本,以及几个其它的操作系统中。

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读