当前位置:首页 > PHP教程 > php日期 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2021-09-27 10:14:15 浏览: 评论:0 

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

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

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

  1. //1、Unix时间戳转日期 
  2. function unixtime_to_date($unixtime$timezone = 'PRC') { 
  3.   $datetime = new DateTime("@$unixtime"); //DateTime类的bug,加入@可以将Unix时间戳作为参数传入 
  4.   $datetime->setTimezone(new DateTimeZone($timezone)); 
  5.   return $datetime->format("Y-m-d H:i:s"); 
  6. //2、日期转Unix时间戳 
  7. function date_to_unixtime($date$timezone = 'PRC') { 
  8.   $datetimenew DateTime($datenew DateTimeZone($timezone)); 
  9.   return $datetime->format('U'); 
  10. echo date_to_unixtime("1900-1-31 00:00:00"); //输出-2206425952 
  11. echo '<br>'
  12. echo unixtime_to_date(date_to_unixtime("1900-1-31 00:00:00")); //输出1900-01-31 00:00:00

Tags: DateTime Unix

分享到: