这篇文章主要介绍了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 '<br>';
echo unixtime_to_date(date_to_unixtime("1900-1-31 00:00:00")); //输出1900-01-31 00:00:00
PS:这里再为大家推荐几款时间及日期相关工具供大家参考使用:
在线日期/天数计算器:
http://tools.mobange.com/jisuanqi/date_jisuanqi
在线日期计算器/相差天数计算器:
http://tools.mobange.com/jisuanqi/datecalc
在线日期天数差计算器:
http://tools.mobange.com/jisuanqi/onlinedatejsq
Unix时间戳(timestamp)转换工具:
http://tools.mobange.com/code/unixtime
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php日期与时间用法总结》、《PHP数组(Array)操作技巧大全》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
本文标题为:PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
基础教程推荐
- php数组函数序列之array_sum() – 计算数组元素值之和 2024-01-15
- PHP实现文件下载【实例分享】 2024-04-27
- php实现数组筛选奇数和偶数示例 2024-02-05
- PHP判断一个字符串是否是回文字符串的方法 2024-01-31
- Yii框架连表查询操作示例 2023-02-13
- PHP实现抽奖系统的示例代码 2023-06-26
- php实现构建排除当前元素的乘积数组方法 2022-11-23
- PHP手机短信验证码实现流程详解 2022-10-18
- 设定php简写功能的方法 2023-03-17
- PHP+MySQL+sphinx+scws实现全文检索功能详解 2023-01-31
