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;

}

}

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值