码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2019-12-19 13:24:08      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:解决   超过   字符串转换   其他   对象   key   ble   sha   转换   

在项目中有的业务场景需要用户购买会员或者套餐等涉及到有效期问题的功能,如果用户购买较多超过了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

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

标签:解决   超过   字符串转换   其他   对象   key   ble   sha   转换   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!