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

yipeiwu_com5年前PHP代码库

本文实例讲述了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

PS:这里再为大家推荐几款时间及日期相关工具供大家参考使用:

在线日期/天数计算器:
http://tools.jb51.net/jisuanqi/date_jisuanqi

在线日期计算器/相差天数计算器:
http://tools.jb51.net/jisuanqi/datecalc

在线日期天数差计算器:
http://tools.jb51.net/jisuanqi/onlinedatejsq

Unix时间戳(timestamp)转换工具:
http://tools.jb51.net/code/unixtime

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php日期与时间用法总结》、《PHP数组(Array)操作技巧大全》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

希望本文所述对大家PHP程序设计有所帮助。

相关文章

php 用checkbox一次性删除多条记录的方法

一个简单示例 现有一个学生信息数据库,需要一次性删除多条记录 创建一个名为del.php的文件 代码如下: 复制代码 代码如下: <form action="sc.php" met...

php 从指定数字中获取随机组合的简单方法(推荐)

例如:给定数字100,需要随机获取3个组成这个数字的组合,例如70,20,10 代码如下: <?php /** * 获取指定数字的随机数字组合 * @param I...

FastCGI 进程意外退出造成500错误

FastCGI 进程意外退出造成500错误

在一台新服务器上,安装新网站,之前只放至了一个网站。是服务器商配置好的,非集成环境。 添加了一个新站,路径都制定好了,但是在访问时出现了500错误。提示貌似是php的问题,但是之前的网站...

PHP读取XML格式文件的方法总结

本文实例总结了PHP读取XML格式文件的方法。分享给大家供大家参考,具体如下: books.xml文件: <books> <book> <author&...

php实现俄罗斯乘法实例

本文实例讲述了php实现俄罗斯乘法的方法。分享给大家供大家参考。具体分析如下: 一、概述: 俄罗斯乘法是一种计算两数相乘的算法。 举例如下: 计算 35*72 过程 35 72 17 1...