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

在项目中有的业务场景需要用户购买会员或者套餐等涉及到有效期问题的功能,如果用户购买较多超过了2038年,那么按照普通的时间戳转换日期或者日期转换时间戳就会出现问题,

这种情况是有存在的可能的,所以需要有解决的方法,目前php5.2版本以后可以内置DateTime对象进行处理

工作中几种处理方法:

// 1、日期字符串转换为时间戳

$obj = new DateTime("2790-08-08");

echo $obj->format("U"); // 25895606400

 

// 2、时间戳转换为日期字符串

$obj = new DateTime("@25895606400"); // 这里时间戳前要写一个@符号

$timezone = timezone_open(‘Asia/Shanghai‘); // 设置时区

$obj->setTimezone($timezone);

echo $obj->format("Y-m-d H:i:s"); // 2790-08-08 00:00:00

 

// 而且DateTime还可以有其他玩法

$obj = new DateTime("2790-08-08 23:59:59");

echo $obj->format("Y/m/d H:i:s"); // 换种方式输入时间字符串2790-08-08 23:59:59

原文地址:https://www.cnblogs.com/kevinggk/p/12066995.html

时间: 2024-08-02 06:58:23

PHP 时间戳超过2038年以后的解决方法的相关文章

oracle select in超过1000条报错解决方法

本博客介绍oracle select in超过1000条数据的解决方法,java框架是采用mybatis的,这可以说是一种比较常见的错误:select * from A where id in(...),oracle官方函数做了限定,in里的参数只能1000个,所以超过1000个参数就会报错,解决方法是将集合分为每个集合1000的小集合,然后用or拼起来select * from A where id in(1,2,...,1000) or id in (1001,1002,2000)...,好

Java中关于OOM的场景及解决方法

原文地址:http://developer.51cto.com/art/201112/305696.htm 1.OOM for Heap=>例如:java.lang.OutOfMemoryError: Java heap space分  析:此OOM是由于JVM中heap的最大值不满足需要,将设置heap的最大值调高即可,参数样例为:-Xmx2G解决方法:调高heap的最大值,即-Xmx的值调大.2.OOM for Perm=>例如:java.lang.OutOfMemoryError: Ja

浏览器兼容性问题及常见的解决方法

一.什么是浏览器兼容性问题 浏览器兼容性问题又称网页兼容性和网站兼容性问题,指网页在各种浏览器上的显示效果可能不一致二产生浏览器和网页间的兼容问题.在网站的设计和制作中,做好浏览器兼容,才能够让网站在不同的浏览器下都正常显示.而对于浏览器软件的开发和设计,浏览器对标准的更好兼容能够给用户更好的使用体验. 二.浏览器兼容性问题产生原因 因为不同浏览器使用内核及所支持的HTML等网页语言标准不同:以及用户客户端的环境不同(如分辨率不同)造成的显示效果不能达到理想效果.最常见的问题就是网页元素位置混乱

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

MySQL连接数超过限制的解决方法

最近网站出现 User 数据库名称 has already more than 'max_user_connections' active connections 的报错,网站瘫痪.有必要研究下这个问题. max_user_connections 是 MySQL 用户连接数的最大值设置,整段语句的意思是:服务器的 MySQL 的最大连接数参数设置不足.解决方法:修改 MySQL 安装目录下 my.ini 或者 my.cnf 文件内的 max_user_connections 参数的数值,重启 M

Apache服务器httpd.exe进程占用cpu超过50%的解决方法

httpd.exe进程占用cpu超过50%,关闭掉Apache服务,cpu应用率立刻下降到0.  重新启动Apache又出现占用cpu高的情况.  原因是:httpd.exe和防火墙配置有冲突. 解决方法如下: 1.网上邻居->本地链接->属性->internet协议(TCP/IP)->属性->高级->wins标签->去掉起用LMhosts查询前的勾. 2.控制面版->windows防火墙->高级标签->本地链接设置->服务的标签里勾选安全

MySQL中同时存在创建和上次更新时间戳字段解决方法浅析

在写这篇文章之前,明确我的MySQL版本. mysql> SELECT VERSION(); +------------+ | VERSION() | +------------+ | 5.5.29-log | +------------+ 1 row in set (0.00 sec) 现在有这样的需求,一张表中有一个字段created_at记录创建该条记录的时间戳,另一个字段updated_at记录更新该条记录的时间戳.我们尝试以下几个语句. 第一个,测试通过. CREATE TABLE t

css控制div下图片自适应解决方法:图片不超过最大宽度

我们(特别是像我一样的菜鸟)经常会遇到一个问题——图片自适应.这个问题是很普遍的.在文章区,在论坛,可以这么说:哪儿需要上传图片,哪儿就存在这个问题,而论坛上也不时有人询问.为什么?原因很简单,我们不能要求网页编辑或者你的论坛会员都会裁剪图片或者了解最基本的html代码——尽管这并没有多少技术含量. 以前的解决方法主要是利用js来实现,但用过的人都知道该办法有点繁琐.还有一种是在外部容器定义over-flow:hidden.但这种办法只会切割图片而不会自动适用. 下面的办法的出现应该感谢伟大的c

织梦添加超过两百个自定义字段后在使用addfields调用自定义字段出错的解决方法

dedecsm 自定义模型  添加自定义字段(个数一百多个),使用addfields  方法调用,出现调用不出来的情况[addfields  里面就能添加145个字段,多了直接乱码或者无法显示] 解决方法 分别打开 include/dedehtml2.class.php include/dedetag.class.php include/dedetemplate.class.php 搜索 1024 全部改成 10240 文件存储字节改大就可以了. 原文地址:https://www.cnblogs