PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】


Posted in PHP onJune 13, 2018

本文实例讲述了PHP基于DateTime类解决Unix时间戳与日期互转问题。分享给大家供大家参考,具体如下:

这个问题主要在32位的系统下出现,64位的不存在这样的问题。php 5.2+提供了DateTime类来处理这样的问题,参考方案如下(请注意时区的处理):

//1、Unix时间戳转日期
function unixtime_to_date($unixtime, $timezone = 'PRC') {
  $datetime = new DateTime("@$unixtime"); //DateTime类的bug,加入@可以将Unix时间戳作为参数传入
  $datetime->setTimezone(new DateTimeZone($timezone));
  return $datetime->format("Y-m-d H:i:s");
}
//2、日期转Unix时间戳
function date_to_unixtime($date, $timezone = 'PRC') {
  $datetime= new DateTime($date, new DateTimeZone($timezone));
  return $datetime->format('U');
}
echo date_to_unixtime("1900-1-31 00:00:00"); //输出-2206425952
echo '<br>';
echo unixtime_to_date(date_to_unixtime("1900-1-31 00:00:00")); //输出1900-01-31 00:00:00
PHP 相关文章推荐
php设计模式 Command(命令模式)
Jun 26 PHP
PHP获取用户的浏览器与操作系统信息的代码
Sep 04 PHP
PHP表单递交控件名称含有点号(.)会被转化为下划线(_)的处理方法
Jan 06 PHP
curl实现站外采集的方法和技巧
Jan 31 PHP
关于URL最大长度限制的相关资料查证
Dec 23 PHP
php遍历删除整个目录及文件的方法
Mar 13 PHP
使用GD库生成带阴影文字的图片
Mar 27 PHP
ThinkPHP里用U方法调用js文件实例
Jun 18 PHP
Thinkphp关闭缓存的方法
Jun 26 PHP
php解析mht文件转换成html的实例
Mar 13 PHP
老生常谈php中传统验证与thinkphp框架(必看篇)
Jun 10 PHP
Laravel多域名下字段验证的方法
Apr 04 PHP
php中html_entity_decode实现HTML实体转义
Jun 13 #PHP
php处理多图上传压缩代码功能
Jun 13 #PHP
Laravel框架使用Seeder实现自动填充数据功能
Jun 13 #PHP
PHP实现打包zip并下载功能
Jun 12 #PHP
PHPUnit测试私有属性和方法功能示例
Jun 12 #PHP
PHP+redis实现的悲观锁机制示例
Jun 12 #PHP
thinkPHP5框架auth权限控制类与用法示例
Jun 12 #PHP
You might like
thinkphp判断访客为手机端或PC端的方法
2014/11/24 PHP
php实现处理输入转义字符的代码
2015/11/08 PHP
javascript操作文本框readOnly
2007/05/15 Javascript
javascript模拟的Ping效果代码 (Web Ping)
2011/03/13 Javascript
自己动手制作jquery插件之自动添加删除行功能介绍
2011/10/14 Javascript
jquery使用ajax实现微信自动回复插件
2014/04/28 Javascript
关闭页面window.location事件未执行的原因及解决方法
2014/09/01 Javascript
jquery任意位置浮动固定层插件用法实例
2015/05/29 Javascript
Bootstrap 组件之按钮(二)
2016/05/11 Javascript
深入浅析knockout源码分析之订阅
2016/07/12 Javascript
用js动态添加html元素,以及属性的简单实例
2016/07/19 Javascript
Ztree新增角色和编辑角色回显问题的解决
2016/10/25 Javascript
BootStrap与Select2使用小结
2017/02/17 Javascript
Angular-Ui-Router+ocLazyLoad动态加载脚本示例
2017/03/02 Javascript
JavaScript无缝滚动效果的实例代码
2017/03/27 Javascript
js中的闭包学习心得
2018/02/06 Javascript
详解vue-cli中模拟数据的两种方法
2018/07/03 Javascript
基于javascript实现贪吃蛇经典小游戏
2020/04/10 Javascript
将Vue组件库更换为按需加载的方法步骤
2020/05/06 Javascript
element日历calendar组件上月、今天、下月、日历块点击事件及模板源码
2020/07/27 Javascript
jQuery实现雪花飘落效果
2020/08/02 jQuery
[01:21]辉夜杯战队访谈宣传片—CDEC
2015/12/25 DOTA
python中随机函数random用法实例
2015/04/30 Python
Python实现简单网页图片抓取完整代码实例
2017/12/15 Python
Python 对输入的数字进行排序的方法
2018/06/23 Python
Python模拟登录之滑块验证码的破解(实例代码)
2019/11/18 Python
使用TensorFlow直接获取处理MNIST数据方式
2020/02/10 Python
python“静态”变量、实例变量与本地变量的声明示例
2020/11/13 Python
美国第一香水网站:Perfume.com
2017/01/23 全球购物
小班下学期评语
2014/05/04 职场文书
个人承诺书怎么写
2014/05/24 职场文书
个人租房协议书(范本)
2014/10/14 职场文书
优秀教师个人总结
2015/02/11 职场文书
三下乡活动心得体会
2016/01/23 职场文书
Nginx开启Brotli压缩算法实现过程详解
2021/03/31 Servers
MySql分区类型及创建分区的方法
2022/04/13 MySQL