`

PHP时间工具类

    博客分类:
  • PHP
 
阅读更多
<?php
class DateUtils {
	function checkDate($date) { //检查日期是否合法日期
		$dateArr = explode ( "-", $date );
		if (is_numeric ( $dateArr [0] ) && is_numeric ( $dateArr [1] ) && is_numeric ( $dateArr [2] )) {
			return checkdate ( $dateArr [1], $dateArr [2], $dateArr [0] );
		}
		return false;
	}
	
	function checkTime($time) { //检查时间是否合法时间  
		$timeArr = explode ( ":", $time );
		if (is_numeric ( $timeArr [0] ) && is_numeric ( $timeArr [1] ) && is_numeric ( $timeArr [2] )) {
			if (($timeArr [0] >= 0 && $timeArr [0] <= 23) && ($timeArr [1] >= 0 && $timeArr [1] <= 59) && ($timeArr [2] >= 0 && $timeArr [2] <= 59))
				return true;
			else
				return false;
		}
		return false;
	}
	
	function addDate($date, $int, $unit = "d") { //时间的增加(还可以改进成时分秒都可以增加,有时间再补上)
		$dateArr = explode ( "-", $date );
		$value [$unit] = $int;
		return date ( "Y-m-d", mktime ( 0, 0, 0, $dateArr [1] + $value ['m'], $dateArr [2] + $value ['d'], $dateArr [0] + $value ['y'] ) );
	
	}
	
	function addDay($ntime, $aday) { //取当前时间后几天,天数增加单位为1
		$dayst = 3600 * 24;
		$oktime = $ntime + ($aday * $dayst);
		return $oktime;
	}
	
	function dateDiff($date1, $date2, $unit = "") { //时间比较函数,返回两个日期相差几秒、几分钟、几小时或几天  
		switch ($unit) {
			case 's' :
				$dividend = 1;
				break;
			case 'i' :
				$dividend = 60;
				break;
			case 'h' :
				$dividend = 3600;
				break;
			case 'd' :
				$dividend = 86400;
				break;
			default :
				$dividend = 86400;
		}
		$time1 = strtotime ( $date1 );
		$time2 = strtotime ( $date2 );
		if ($time1 && $time2)
			return ( float ) ($time1 - $time2) / $dividend;
		return false;
	}
	
	function getWeekDay($date) { //计算出给出的日期是星期几
		$dateArr = explode ( "-", $date );
		return date ( "w", mktime ( 0, 0, 0, $dateArr [1], $dateArr [2], $dateArr [0] ) );
	}
	
	function getDateTimeMk($mktime) { //取当前时间,格式为2009-10-23 14:20:35
		return MyDate ( 'Y-m-d H:i:s', $mktime );
	}
	
	function getDateMk($mktime) { //取当前时间,格式为2009-10-23
		if ($mktime == "0")
			return "暂无";
		else
			return MyDate ( "Y-m-d", $mktime );
	}
	
	function getMkTime($dtime) { //把时间格式转化为Linux时间戳
		global $cfg_cli_time;
		if (! ereg ( "[^0-9]", $dtime )) {
			return $dtime;
		}
		$dtime = trim ( $dtime );
		$dt = Array (1970, 1, 1, 0, 0, 0 );
		$dtime = ereg_replace ( "[\r\n\t]|日|秒", " ", $dtime );
		$dtime = str_replace ( "年", "-", $dtime );
		$dtime = str_replace ( "月", "-", $dtime );
		$dtime = str_replace ( "时", ":", $dtime );
		$dtime = str_replace ( "分", ":", $dtime );
		$dtime = trim ( ereg_replace ( "[ ]{1,}", " ", $dtime ) );
		$ds = explode ( " ", $dtime );
		$ymd = explode ( "-", $ds [0] );
		if (! isset ( $ymd [1] )) {
			$ymd = explode ( ".", $ds [0] );
		}
		if (isset ( $ymd [0] )) {
			$dt [0] = $ymd [0];
		}
		if (isset ( $ymd [1] )) {
			$dt [1] = $ymd [1];
		}
		if (isset ( $ymd [2] )) {
			$dt [2] = $ymd [2];
		}
		if (strlen ( $dt [0] ) == 2) {
			$dt [0] = '20' . $dt [0];
		}
		if (isset ( $ds [1] )) {
			$hms = explode ( ":", $ds [1] );
			if (isset ( $hms [0] )) {
				$dt [3] = $hms [0];
			}
			if (isset ( $hms [1] )) {
				$dt [4] = $hms [1];
			}
			if (isset ( $hms [2] )) {
				$dt [5] = $hms [2];
			}
		}
		foreach ( $dt as $k => $v ) {
			$v = ereg_replace ( "^0{1,}", '', trim ( $v ) );
			if ($v == '') {
				$dt [$k] = 0;
			}
		}
		$mt = @gmmktime ( $dt [3], $dt [4], $dt [5], $dt [1], $dt [2], $dt [0] ) - 3600 * $cfg_cli_time;
		if (! empty ( $mt )) {
			return $mt;
		} else {
			return time ();
		}
	}
	
	function MyDate($format = 'Y-m-d H:i:s', $timest = 0) { //返回格林威治标准时间
		//global $cfg_cli_time='+8';
		global $cfg_cli_time;
		$addtime = $cfg_cli_time * 3600;
		if (empty ( $format )) {
			$format = 'Y-m-d H:i:s';
		}
		return gmdate ( $format, $timest + $addtime );
	}
	
	function floorTime($seconds) { //让日期显示为:XX天XX年以前 
		$times = '';
		$days = floor ( ($seconds / 86400) % 30 );
		$hours = floor ( ($seconds / 3600) % 24 );
		$minutes = floor ( ($seconds / 60) % 60 );
		$seconds = floor ( $seconds % 60 );
		if ($seconds >= 1)
			$times .= $seconds . '秒';
		if ($minutes >= 1)
			$times = $minutes . '分钟 ' . $times;
		if ($hours >= 1)
			$times = $hours . '小时 ' . $times;
		if ($days >= 1)
			$times = $days . '天';
		if ($days > 30)
			return false;
		$times .= '前';
		return str_replace ( " ", '', $times );
	}
	
	function transDateToChs($date) {
		if (empty ( $date ))
			return '今日';
		$y = _date ( 'Y', strtotime ( $date ) );
		$m = _date ( 'm', strtotime ( $date ) );
		$d = _date ( 'd', strtotime ( $date ) );
		return $y . '年' . $m . '月' . $d . '日';
	}
	
	// 08/31/2004 => 2004-08-31
	function TransDateUI($datestr, $type = 'Y-m-d') {
		if ($datestr == Null)
			return Null;
		$target = $datestr;
		$arr_date = preg_split ( "/\//", $target );
		$monthstr = $arr_date [0];
		$daystr = $arr_date [1];
		$yearstr = $arr_date [2];
		$result = date ( $type, mktime ( 0, 0, 0, $monthstr, $daystr, $yearstr ) );
		return $result;
	}
	
	// 12/20/2004 10:55 AM => 2004-12-20 10:55:00
	function TransDateTimeUI($datestr, $type = 'Y-m-d H:i:s') {
		if ($datestr == Null)
			return Null;
		$target = $datestr;
		$arr_date = preg_split ( "/\/|\s|:/", $target );
		$monthstr = $arr_date [0];
		$daystr = $arr_date [1];
		$yearstr = $arr_date [2];
		$hourstr = $arr_date [3];
		$minutesstr = $arr_date [4];
		$result = date ( $type, mktime ( $hourstr, $minutesstr, 0, $monthstr, $daystr, $yearstr ) );
		return $result;
	}
	
	// 2004-08-31 => 08/31/2004
	function TransDateDB($datestr, $type = 'm/d/Y') {
		if ($datestr == Null)
			return Null;
		if ($datestr == '0000-00-00')
			return Null;
		$target = $datestr;
		$arr_date = preg_split ( "/-/", $target );
		$monthstr = $arr_date [1];
		$daystr = $arr_date [2];
		$yearstr = $arr_date [0];
		$result = date ( $type, mktime ( 0, 0, 0, $monthstr, $daystr, $yearstr ) );
		return $result;
	}
	
	// 2004-08-31 10:55:00 => 12/20/2004 10:55 AM 
	function TransDateTimeDB($datestr, $type = 'm/d/Y h:i A') {
		if ($datestr == Null)
			return Null;
		$target = $datestr;
		$arr_date = preg_split ( "/-|\s|:/", $target );
		$monthstr = $arr_date [1];
		$daystr = $arr_date [2];
		$yearstr = $arr_date [0];
		$hourstr = $arr_date [3];
		$minutesstr = $arr_date [4];
		$secondstr = $arr_date [5];
		$result = date ( $type, mktime ( $hourstr, $minutesstr, $secondstr, $monthstr, $daystr, $yearstr ) );
		return $result;
	}
}
?>
 
分享到:
评论

相关推荐

    php MQTT工具类

    PHP MQTT工具类是一种用于在PHP环境中与MQTT(Message Queuing Telemetry Transport)协议交互的库或类。MQTT是一种轻量级的消息协议,广泛应用于物联网(IoT)设备之间的通信,因为它具有低开销、低带宽占用以及高...

    php上传,生成略缩图,加水印工具类.zip

    至于**数据库操作**,此工具类可能会将上传文件的相关信息(如文件名、大小、上传时间等)存储到数据库中,便于日后的管理和检索。这可能涉及到MySQLi或PDO等数据库连接方式,以及SQL语句的执行,如INSERT语句插入...

    php一个常用工具类.zip

    介绍一个php一个常用工具类,js 弹窗并且跳转,js 弹窗返回 ,页面跳转,弹窗关闭,系统基本参数上传图片专用,数据库输入过滤,清理session,验证是否为空,验证是否相同,格式化字符串,格式化时间,获得真实IP...

    PHP常用工具类大全附全部代码下载

    根据给定文件的信息,这里将会详细说明关于“PHP常用工具类大全附全部代码下载”的知识点。 1. 助手类概述 在PHP中,助手类通常被设计为提供一系列的便利方法,以供开发者在项目中快速调用。它不是一个具体的功能类...

    php的其他工具类.zip

    PHP中的日期和时间处理是常见的需求,工具类可能封装了方便的时间格式化、日期计算等方法,简化这类操作。 8. **字符串与数组操作**: 字符串和数组的处理是PHP开发中的常见任务,工具类可能会提供一些增强的函数...

    php日期工具类

    php日期工具类,主要提供日期的帮助。 程序的时间。

    php中的http请求工具

    为了解决这个问题,许多开发者倾向于创建一个简单的HTTP请求工具类,封装了cURL的基本操作。这种工具通常会提供一个简洁的API,使得发起HTTP请求变得直观且易于理解。例如,`HttpTool`可能是这样的一个工具,它可能...

    php计算页面执行时间的类.zip

    总之,“php计算页面执行时间的类.zip”提供的工具是开发者优化代码性能的重要助手,通过它可以轻松追踪和改善PHP应用程序的效率。正确使用这个类,结合最佳实践,可以帮助你创建更快、更高效的网站和应用程序。

    精确计算任意年份节气时间源码 PHP工具类

    精确计算任意年份节气,精确到秒,打包PHP类,直接调用方法SolarTerm::getSolarTerms(年份)

    PHP常用工具类方法(珍藏版收集)

    在PHP编程中,工具类(Utility Class)是包含各种实用函数的类,这些函数可以用于执行常见的任务,如字符串操作、数组处理、日期时间管理、文件I/O等。本珍藏版收集了一些PHP开发者在日常工作中经常会用到的工具类...

    一个php一个常用工具类

    一个php一个常用工具类,js 弹窗并且跳转,js 弹窗返回 ,页面跳转,弹窗关闭,系统基本参数上传图片专用,数据库输入过滤,清理session,验证是否为空,验证是否相同,格式化字符串,格式化时间,获得真实IP地址,...

    php开发短信接口平台的工具类

    总的来说,PHP开发的短信接口平台工具类是提升开发效率、简化通信过程的重要工具,它使得开发者可以更专注于业务逻辑,而不是花费大量时间在基础的网络通信上。通过合理设计和实现,这样的工具类能为各种类型的Web...

    php实现网页缓存的工具类.zip

    php实现网页缓存的工具类的代码及使用方法,非常的实用。 php程序在抵抗大流量访问的时候动态网站往往都是难以招架,所以要引入缓存机制,一般情况下有两种类型缓存 一、文件缓存 二...

    php封装的时间处理类

    "php封装的时间处理类"就是这样的一个工具,它整合了各种时间相关的操作,方便我们在项目中直接调用。 该类可能包含了以下功能: 1. **获取当前时间**:提供一个方法,如`getCurrentTime()`,用于获取当前的Unix...

    ExpressiveDate一个PHP日期时间类流畅的扩展

    总的来说,ExpressiveDate是PHP开发中一个强大的日期时间处理工具,它提高了日期时间操作的便捷性和灵活性,使得开发者可以更加专注于业务逻辑,而不是底层的日期时间处理细节。在使用这个扩展时,开发者可以享受到...

    php调试工具

    Zend Firefox Toolbar是专门为PHP开发者设计的浏览器工具栏,它与Zend Debugger配合使用,可以在浏览器上直观地查看PHP应用的运行状态,如执行时间、内存使用情况、错误信息等,这对于前端调试非常有帮助。...

    PHP注入工具超强工具包

    1. **SQL注入扫描器**:这类工具会自动尝试各种SQL注入技术,以检测Web应用的漏洞。它们通常包括多种注入模式,如盲注、时间延迟注入和Union查询注入等。 2. **payload生成器**:可以生成各种可能的恶意输入,帮助...

    一个完整的PHP时间类.zip

    总的来说,这个“一个完整的PHP时间类”是一个实用的工具,可以帮助开发者更高效地处理日期和时间相关的任务,提升开发效率。在学习和使用这个类时,建议仔细阅读类的文档,理解每个方法的作用,并通过编写测试用例...

    PHP效率测试工具

    另外,`run_time_test.php`可能是一个自定义的测试脚本,它可能包含了对PHP代码性能测试的实现,例如上述提到的`microtime()`方法或者其他更复杂的测试框架,如Benchmark类或者PHP的`profile`函数。 `demo.php`则...

    PHP常用的类封装小结【4个工具类】

    在本篇文章中,作者主要介绍了PHP语言中的类封装技巧,以及如何通过实例来实现四个实用的工具类:Mysql类、分页类、缩略图类、上传类。这些类封装是PHP开发中常见的功能模块,它们能够帮助开发者简化代码逻辑,提升...

Global site tag (gtag.js) - Google Analytics