如何解决时间超过2038问题

//1.在PHP5.2提供了一个类Datetime

<?php
//将年-月-日转成时间戳
$d = new DateTime(‘2047-06-19 00:00:00‘);
echo $d->format(‘U‘);

//将时间戳转成年-月-日
$d = new DateTime(‘@2444485400‘);
$d->setTimezone(new DateTimeZone(‘PRC‘));
echo $d->format(‘Y-m-d H:i:s‘); 

//2.依靠PHP版本和操作系统的版本来解决

<?php
echo date(‘Y-H-i‘, strtotime(‘2055-02-13‘));

假如输出的结果不是2055-02-13,那你就遇到这个问题了。
什么时候可能不遇到?你的操作系统是64位的,并且你的PHP是64位版本的。
但是,无论如何,最好还是测试一下。

时间: 2024-08-08 21:51:53

如何解决时间超过2038问题的相关文章

php解决时间超过2038年

问题 超过2038年的时间 php怎么处理? 1 echo date('Y-m-d',2147483647); //date函数能处理的最大整数2147483647 ->2038-01-19 就是2的31次方-1得到2147483647,如果超过了这个值怎么办? 如果还是使用date这个函数会乱掉. 解决方案:使用DateTime类 1 $d = new DateTime('@2147493648'); 2 $d->setTimeZone(new DateTimeZone('PRC')); 3

解决为应用程序池 提供服务的进程关闭时间超过了限制

为应用程序池 '×××' 提供服务的进程关闭时间超过了限制.进程 ID 是 '7480'. 提示的ID可以有很多,例如3844.8004.6124等数字.在百度上搜了下,发现很多类似的问题,引发的根本原因未知,但导致出现此种情况的直接原因为IIS失败保护!例如设置失败保护为每5分钟失败数超过5次则关闭应用程序池,就会出现停止服务的情况,此时提示日志为:应用程序池 '×××' 被自动禁用,原因是为此应用程序池提供服务的进程中出现一系列错误.解决办法如下:Internet 信息服务(IIS)管理器-

mysql连接的空闲时间超过8小时后 MySQL自动断开该连接解决方案 详细出处参考:http://www.jb51.net/article/32284.htm

MySQL 的默认设置下,当一个连接的空闲时间超过8小时后,MySQL 就会断开该连接,而 c3p0 连接池则以为该被断开的连接依然有效.在这种情况下,如果客户端代码向 c3p0 连接池请求连接的话,连接池就会把已经失效的连接返回给客户端,客户端在使用该失效连接的时候即抛出异常 解决这个问题的办法有三种: 1. 增加 MySQL 的 wait_timeout 属性的值. 修改 /etc/mysql/my.cnf文件,在 [mysqld] 节中设置: # Set a connection to w

shell脚本汇总 2 删除创建时间超过32天的文件

shell脚本汇总 2 删除创建时间超过32天的文件 #!/bin/bash #date:2017-04-11 #version:clear_ballcloud_back_v1.0 #contents: removing the  /www/web/ballcloud_bakck/* , if the file is created above 32 day # cd /www/web #sum the size of already delete directory dirsize=`du -

解决 Elasticsearch 超过 10000 条无法查询的问题

解决 Elasticsearch 超过 10000 条无法查询的问题 问题描述 分页查询场景,当查询记录数超过 10000 条时,会报错. 使用 Kibana 的 Dev Tools 工具查询 从第 10001 条到 10010 条数据. 查询语句如下: GET alarm/_search { "from": 10000, "size": 10 } 查询结果,截图如下: 报错信息如下: { "error": { "root_cause&

PHP 时间戳超过2038年以后的解决方法

在项目中有的业务场景需要用户购买会员或者套餐等涉及到有效期问题的功能,如果用户购买较多超过了2038年,那么按照普通的时间戳转换日期或者日期转换时间戳就会出现问题, 这种情况是有存在的可能的,所以需要有解决的方法,目前php5.2版本以后可以内置DateTime对象进行处理 工作中几种处理方法: // 1.日期字符串转换为时间戳 $obj = new DateTime("2790-08-08"); echo $obj->format("U"); // 2589

两个PHP方面的东西,超过2038的时间和唯一订单号算法

2014年10月01日  php开发 1条评论 阅读264次 DateTime::format 被设计成不受外部设置影响(面向对象就应该如此)所以无论你如何改变环境参数 date_default_timezone ,都不会影响输出结果要想改变 DateTime::format 的时区设置,需要向 DateTime::setTimezone 传入一个时区对象 DateTimeZone 1 $d = new DateTime('@2444486400'); 2 $d->setTimezone(new

TIMESAMPE_HEX_TO_CHAR函数 解决时间16进制可视化问题

  在11G 提供了一个超过4秒的SQL视图 里面包含了很多必要的信息 同时可以使用 --查看超过4秒语句执行计划SELECT dbms_sqltune.report_sql_monitor(sql_id => '&sql_id',report_level => 'ALL',type=>'TEXT') comm FROM dual; 获得个格式美化的东西 可是其中 Binds=====================================================

Linux使用find查找最后修改时间超过三天的文件并移动到指定目录

使用场景:应用程序,如tomcat,每天都会生成新的日志文件,时间一长,占用大量的磁盘,需要定期清理这些文件. 代码如下: find /tomcat/logs/*.log -ctime +3 -exec mv {} /tmp 也可以使用xargs传参数 find /tomcat/logs/*.log -ctime +3 | xargs mv {} /tmp 说明:将指定目录下超过3天未修改的日志文件移动到tmp中. 如果要直接删除,将命令改为如下即可: find /tomcat/logs/*.l