欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-06-08 20:31:59
本文实例讲述了php基于datetime类解决unix时间戳与日期互转问题。分享给大家供大家参考,具体如下: 这个问题主要在32位的系统下出现,64位的不存在这样的问题。...

本文实例讲述了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:这里再为大家推荐几款时间及日期相关工具供大家参考使用:

在线日期/天数计算器:

在线日期计算器/相差天数计算器:

在线日期天数差计算器:

unix时间戳(timestamp)转换工具:

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

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