设为首页 收藏本站
查看: 805|回复: 0

[经验分享] PHP时间工具类

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-3-29 08:58:43 | 显示全部楼层 |阅读模式
<?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;
}
}
?>

 

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-356794-1-1.html 上篇帖子: php 基础笔记 下篇帖子: php > 关于防注入
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表