PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
2018-09-07 14:00
本文实例讲述了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程序设计有所帮助。
上一篇:PHP策略模式定义与用法示例
文章标题:PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
文章链接:http://soscw.com/index.php/essay/13111.html