|
楼主 |
发表于 2008-12-9 23:13:12
|
显示全部楼层
这一个时间转换的函数 GmtToUnix 可能用得到,把它加到 phpcms的 include/global.func.php里面- /** * fun.TimeApi.php
- * * GMT 系列 - 功能库接口 1
- * * 功能库名: 时间处理功能库接口
- * * 功能库内容介绍:
- * 1. 格林威治时间快速转时间戳
- * 2. 时间戳转格林威治时间
- * 3. 计算时间间隔
- * 4. 判断是否闰年
- * 5. 闰年间隔判断
- */ /** * 把格林威治时间转为时间戳 */
- function GmtToUnix($GmtDate)
- {
- $DateArr = explode(' ',$GmtDate); // 分割GMT日期为 日期 | 时间
- /* 在日期中取得年,月,日 */
- $pDate = split('[/.-]',$DateArr[0]);
- $Year = $pDate[0];
- $Month = $pDate[1];
- $Day = $pDate[2];
- /* 在时间中取得时,分,秒 */
- $pTime = split('[:.-]',$DateArr[1]);
- $Hour = $pTime[0];
- $Minute = $pTime[1];
- $Second = $pTime[2];
- if($Year == '' || !is_numeric($Year))
- $Year = 0;
- if($Month == '' || !is_numeric($Month))
- $Month = 0;
- if($Day == '' || !is_numeric($Day))
- $Day = 0;
- if($Hour == '' || !is_numeric($Hour))
- $Hour = 0;
- if($Minute == '' || !is_numeric($Minute))
- $Minute = 0;
- if($Second == '' || !is_numeric($Second))
- $Second = 0;
- return mktime($Hour,$Minute,$Second,$Month,$Day,$Year);
- }
- /** * 把时间戳转换为格林威治时间 *
- * 建议使用php自带的 gmdate / date */
- function UnixToGmt($format_string = "Y-m-d H:i:s" ,$UnixTime = 0)
- { return @gmdate($format_string,$UnixTime); }
- /** * 计算时间间隔 */
- function DiffDateTime($interval,$diff_datetime1,$diff_datetime2)
- {
- if(is_numeric($diff_datetime1) && !is_numeric($diff_datetime2))
- $_datetime1 = $diff_datetime1;
- $_datetime2 = GmtToUnix($diff_datetime2);
- if(!is_numeric($diff_datetime1) && is_numeric($diff_datetime2));
- $_datetime1 = GmtToUnix($diff_datetime1);
- $_datetime2 = $diff_datetime2;
- if(is_numeric($diff_datetime1) && is_numeric($diff_datetime2))
- $_datetime1 = $diff_datetime1;
- $_datetime2 = $diff_datetime2;
- if(!is_numeric($diff_datetime1) && is_numeric(!$diff_datetime2))
- $_datetime1 = GmtToUnix($diff_datetime1);
- $_datetime2 = GmtToUnix($diff_datetime2);
- $diffUnixSec = $_datetime1 - $_datetime2;
- switch ($interval)
- {
- case 'Y': return bcdiv($diffUnixSec, 31536000); break;
- case 'W': return bcdiv($diffUnixSec, 604800); break;
- case 'D': return bcdiv($diffUnixSec, 86400); break;
- case 'H': return bcdiv($diffUnixSec, 3600); break;
- case 'M': return bcdiv($diffUnixSec, 60); break;
- case 'S': return $diffUnixSec; break;
- default: return false;
- } }
- /** * 闰年判断 * @return boolean */
- function isLeapYear($Year)
- { if(bcmod($Year,4) == 0 && bcmod($Year,100) !== 0 || bcmod($Year,400) == 0)
- { return true; }
- else { return false; }
- }
- /** * 闰年间隔计算 */
- function NextLeapYear($Year,$return_year = false)
- { if($return_year)
- { return $Year + (4 - (int)bcmod($Year,4)); }
- else { return 4 - (int)bcmod($Year,4); }
- }
复制代码 |
|