首页 >后端开发 >php教程 >如何解决PHP基于DateTime类Unix时间戳与日期互转的问题

如何解决PHP基于DateTime类Unix时间戳与日期互转的问题

不言
不言原创
2018-06-13 09:34:221623浏览

这篇文章主要介绍了PHP基于DateTime类解决Unix时间戳与日期互转问题,通过DateTime类解决1970年前及2038年后时间戳显示与计算问题,非常简单实用,代码中备有较为详尽的注释便于理解,需要的朋友可以参考下

本文实例讲述了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 &#39;<br>&#39;;
echo unixtime_to_date(date_to_unixtime("1900-1-31 00:00:00")); //输出1900-01-31 00:00:00

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

如何用php处理多图上传压缩的功能

在php中用html_entity_decode实现HTML实体转义

以上是如何解决PHP基于DateTime类Unix时间戳与日期互转的问题的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn