最近在开发一个订单查询模块的时候,想当然的写了个2099年的日期,结果PHP返回了空值,肯定是发生溢出错误了,搜索了网上,发现下面这篇文章,但是我的问题依然没有解决,要怎么得到2038年以后的时间戳呢?

我综合了网上的资料,写了以下测试代码,应该可以解决这个问题了:

我的测试环境是:Win7 64位,PHP环境是:PhpStudy PHP5.5n

<?phpecho ‘PHP中正整形常量的最大值【PHP_INT_MAX】:‘.PHP_INT_MAX.‘
‘;echo ‘PHP_INT_MAX能转换为的最大日期值:‘.date("Y-m-d H:i:s", PHP_INT_MAX).‘
‘;echo ‘
‘;$date1 = ‘1970-01-01 08:00:00‘;echo ‘1970-01-01 08:00:00 时间戳:->‘.strtotime($date1).‘
‘;//

$date2 = ‘2038-01-19 11:14:07‘;echo ‘2038-01-19 11:14:07 时间戳:->‘.strtotime($date2).‘
‘;$date2a = ‘2038-01-19 11:14:08‘;$datetime2a = new DateTime($date2a);echo ‘2038-01-19 11:14:08 时间戳:->‘.$datetime2a->format(‘U‘).‘
‘;//

$date3 = ‘2099-12-31 00:00:00‘;$datetime = new DateTime($date3);echo ‘2099-12-31 00:00:00 时间戳:->‘.$datetime->format(‘U‘).‘
‘;$date4 = ‘9999-12-31 23:59:59‘;$datetime = new DateTime($date4);echo ‘9999-12-31 23:59:59 时间戳:->‘.$datetime->format(‘U‘).‘
‘;?>

PS.有关format()函数的参数,参见官方文档:http://www.php.net/manual/en/function.date.php

以上代码运行的结果:

PHP中正整形常量的最大值【PHP_INT_MAX】:2147483647

PHP_INT_MAX能转换为的最大日期值:2038-01-19 11:14:07

1970-01-01 08:00:00 时间戳:->0

2038-01-19 11:14:07 时间戳:->2147483647

2038-01-19 11:14:08 时间戳:->2147483648

2099-12-31 00:00:00 时间戳:->4102329600

9999-12-31 23:59:59 时间戳:->253402271999

由于本机的PHP_INT_MAX就是:2147483647,所以它转换为日期值,最大也就是 2038-01-19 11:14:07,超过哪怕一秒,也就产生了溢出。

-------------------------------------------------------------------------------------------------------------------------------------------------

以下是我找到一篇参考文章:《php时间日期处理到2038年之后该怎么办?》

php strtotime 2099,PHP的strtotime()函数2039年bug问题相关推荐

  1. php strtotime 8小时,php时间函数strtotime的深入理解

    本节内容: php时间函数strtotime 先来看下php官方手册中对strtotime的描述: strtotime() 函数将任何英文文本的日期时间描述解析为 Unix 时间戳. 也就是说,此函数 ...

  2. 0.11内核rd_load@ramdisk.c中memcpy函数好像有bug

    0.11内核rd_load@ramdisk.c中memcpy函数好像有bug,如: #define memcpy(dst,src,n) \     __asm__("cld;rep;movs ...

  3. 关于VC++6.0中getline函数的一个bug

    关于VC++6.0中getline函数的一个bug 最近在调试程序时,发现getline函数在VC++6.0和其他编译器上运行结果不一样,比如有如下这段程序: #include <iostrea ...

  4. c语言非线程安全函数引发的BUG一列

    公司的机器最近遇到一个bug(其实这个bug一年前就出现过,只是未引起重视),现象是这样的:在生产环境中,用户连续打印票的时候,中间某张票的一个时间可能会出问题,该时间本来是一个未来的时间,却被打印成 ...

  5. php is_subclass_of,PHP_PHP is_subclass_of函数的一个BUG和解决方法,is_subclass_of的作用: 复制代码 - phpStudy...

    PHP is_subclass_of函数的一个BUG和解决方法 is_subclass_of的作用: bool is_subclass_of ( object object, string class ...

  6. [原创]Redis BUG系列(I)——SDS字符串的sdssplitlen函数实现顺序BUG,浪费了计算与内存资源

    这里写自定义目录标题 简要 BUG介绍 源码与说明 BUG内容 修改方法 BUG验证 BUG影响 版本范围 哪些时候调用sdssplitlen这个函数? 我在GIT上提交的pull request 简 ...

  7. php strtotime -1 day,PHP strtotime() 函数

    strtotime() 函数将任何英文文本的日期时间描述解析为 Unix 时间戳. strtotime(time,now) time 规定要解析的时间字符串. now 用来计算返回值的时间戳.如果省略 ...

  8. php中strtotime参数,PHP中strtotime函数使用方法

    在PHP中有个叫做strtotime的函数.strtotime 实现功能:获取某个日期的时间戳,或获取某个时间的时间戳.strtotime 将任何英文文本的日期时间描述解析为Unix时间戳[将系统时间 ...

  9. php strtotime坑,php中strtotime函数的坑

    问题: //根据出生年月 计算年龄 $birthday = '0000-00-00'; $age = strtotime($birthday); if($age === false){ return ...

最新文章

  1. LeetCode 33 搜索旋转排序数组
  2. Windows程序闪退Windows日志捕获Kernelbase模块错误
  3. vb.net 文本框为空提示,一键清空文本框所有内容
  4. hdu 1257最少拦截系统(贪心)
  5. 域名防系统+独立接口池+独立会员+独立权限
  6. POJ2940 HDU1489 UVA11054 Wine Trading in Gergovia【Ad Hoc】
  7. javaweb环境的配置 以及tomcat的安装
  8. UOJ356 [JOI2017春季合宿] Port Facility 【启发式合并】【堆】【并查集】
  9. 导入自己写好的python包
  10. 摆脱某某助手,使用无线投屏功能共享安卓屏幕到PC
  11. 软考中级网络工程师的就业前景以及考试要求
  12. 向98年的华为学习:没有高管办公室的青铜器软件
  13. office表格标题和表格距离过大怎么解决
  14. solidworks2014可否保存成以前版本?--问题解决
  15. [深度学习项目] - 时间序列预测 (5)[待补充]
  16. GetDC和BeginPaint
  17. jenkins-RestAPI调用出现Error 403 No valid crumb was included in the request解决方法
  18. 全国省份地区相关常量备忘
  19. 计算机教师职称申报工作总结,信息技术(计算机)教师职称评定工作总结
  20. 上大学后才知道的14件事

热门文章

  1. 微信小程序IOS手机能正常访问但是安卓手机出现REQUEST FAILED无法访问服务器问题
  2. 空间注意力 通道注意力_注意力发生了什么变化?
  3. 网易互娱2017实习生招聘在线笔试(二)
  4. 精通Web Analytics 2.0 (7) 第五章:荣耀之钥:度量成功
  5. Struts2编写自定义验证拦截敏感词汇(十二)
  6. C语言之逆序输出一个四位数
  7. nginx 配置之 proxy_pass参数详解
  8. 服务器硬盘数据备份到nas,谁说固态硬盘做存储是鸡肋?NAS存储服务器还能这样玩...
  9. 【国科大矩阵论】2021秋季叶世伟矩阵论考试计算题
  10. EagleEye简介:户外视频监控分析和面部识别软件