PHP 的 strtotime('2100-01-01'); 转换失败;经查询是因为32位系统的 Y2K38问题;

Y2K38 问题:当时间大于 2038年01月19日03:14:07 时,strtotime和time、date函数在32系统下(PHP的版本)将导致转换失败;

问题解决办法:使用 new DateTime(); 来做时间转换处理;代码如下:

<?php

/**
* 替换系统 strtotime, Y2K38问题
*/
function _strtotime($dt = null, $modify = '')
{
$d = null;
if (empty($dt))
{
$d = new \DateTime();
}
else if (\is_numeric($dt))
{
$d = new \DateTime('@' . $dt);
}
else
{
$d = new \DateTime($dt);
} $d -> setTimeZone(new \DateTimeZone('PRC'));
if ($modify != '')
{
$d -> modify($modify);
} return $d -> format('U');
} /**
* 替换系统 date, Y2K38问题
*/
function _date($format = 'Y-m-d H:i:s', $dt = null)
{
$d = new \DateTime('@' . _strtotime($dt));
$d -> setTimeZone(new \DateTimeZone('PRC')); return $d -> format($format);
}

// 测试代码
echo _strtotime('2100-01-01') . PHP_EOL;
echo _strtotime('2100-01-01', '+10day') . PHP_EOL;
echo _date() . PHP_EOL;
echo _date('Y-m-d', '2100-01-01') . PHP_EOL; $dt = _strtotime('2100-01-01', '+10day');
echo _date('Y-m-d', $dt) . PHP_EOL;
$dt -= 24*3600;
echo _date('Y-m-d', $dt) . PHP_EOL;

PHP Y2K38 (2038年) 问题的更多相关文章

  1. php 2038年问题

    在mysql中存放日期时可以存放整数 (int),  而int可以存放的数据最大为4294967295(无符号), 而php最大为2147483647, 要显示一个大于2038年日期,该如何处理 ? ...

  2. HYSBZ 2038 莫队算法

    小Z的袜子(hose) Time Limit:20000MS     Memory Limit:265216KB     64bit IO Format:%lld & %llu Submit  ...

  3. BZOJ 2038: [2009国家集训队]小Z的袜子(hose) [莫队算法]【学习笔记】

    2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec  Memory Limit: 259 MBSubmit: 7687  Solved: 3516[Subm ...

  4. BZOJ 2038: [2009国家集训队]小Z的袜子(hose)

    2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec  Memory Limit: 259 MBSubmit: 7676  Solved: 3509[Subm ...

  5. [BZOJ 2038]小Z的袜子

    传送门:BZOJ 2038 题意很明确,是在给定的区间内任意选取两个数,求选到两个相同的数的概率. 所以我们得首先统计在给定的区间内,相同的数对有多少对,那么这里就使用到了莫队算法.如果对莫队算法还不 ...

  6. 莫队算法 2038: [2009国家集训队]小Z的袜子(hose)

    链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2038 2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 ...

  7. BZOJ 2038 小z的袜子 & 莫队算法(不就是个暴力么..)

    题意: 给一段序列,询问一个区间,求出区间中.....woc! 贴原题! 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过 ...

  8. 【BZOJ】2038: [2009国家集训队]小Z的袜子(hose)(组合计数+概率+莫队算法+分块)

    http://www.lydsy.com/JudgeOnline/problem.php?id=2038 学了下莫队,挺神的orzzzz 首先推公式的话很简单吧... 看的题解是从http://for ...

  9. 【BZOJ】【2038】小Z的袜子

    填个坑吧,学习了莫队算法.我也忘记是看的哪位大牛的博客&代码学习的了T_T,如果您发现了的话请私信我,我会注明学自您的代码. 另外感谢@PoPoQQQ大神 好,进入正文,莫队算法,也算是一种暴 ...

随机推荐

  1. rest framework 之视图

    一.APIView APIView 直接继承 View(Django 内置的 View),也就是说 APIView 是最贴近原生 Django 的 View 的. 因此可定制程度高,根据请求方法不同执 ...

  2. Centos 6.5 实战-MySQL定时增量备份(2)

    首先在进行增量备份之前需要查看一下配置文件,查看 log_bin 是否开启,因为要做增量备份首先要开启 log_bin .首先,进入到 myslq 命令行,输入如下命令: [root@localhos ...

  3. 浅谈flask源码之请求过程

    更新时间:2018年07月26日 09:51:36   作者:Dear.   我要评论   这篇文章主要介绍了浅谈flask源码之请求过程,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随 ...

  4. Refrence

    深入详解美团点评CAT跨语言服务监控(一) CAT简介与部署 https://blog.csdn.net/caohao0591/article/details/80693289 搭建大众点评CAT监控 ...

  5. JQuery系列(7) - JQuery最佳实践

    上篇文章是一篇入门教程,从设计思想的角度,讲解"怎么使用jQuery".今天的文章则是更进一步,讲解"如何用好jQuery". 我主要参考了Addy Osman ...

  6. loadrunner:传json

    loadrunner传k-v,用web_custom_request函数. init里面执行登录,根据返回获取到tokenId,action中,执行登录后的操作. 详细脚本如下: vuser_init ...

  7. java内部类的本质

    连接与通信,作为桥接中间件存在. 内部类和主体类可以无障碍通信: 1.通过继承连接实现: 2.通过接口连接通信: 形式: 1.命名空间: 2.运行上下文: 其它: 信息隐藏是次要功能. 内部类 Jav ...

  8. swift函数式编程之compose

    func a(en:String) -> String { return en + "a"; } func b(en:String) -> String { retur ...

  9. 一种动态的样式语言--Less 之 导引混合

    .mixin (@a) when (lightness(@a) >= 50%){ background-color: black; } .mixin (@a) when (lightness(@ ...

  10. Codeforces Round #603 (Div. 2) C. Everyone is a Winner! (数学)

    链接: https://codeforces.com/contest/1263/problem/C 题意: On the well-known testing system MathForces, a ...