-
- /**
- * 기능: php 시간 및 날짜 도구 클래스
- * 편집자: bbs.it-home.org
- */
- DateTimeUtils::addDate('2013-12-01',1,'y ');
- DateTimeUtils::getWeekDay('2013/10/01','/');
- DateTimeUtils::isLeapYear('2013');
- DateTimeUtils::timeFromNow(strtotime("2013-10-26 14:15:13"));
- class DateTimeUtils {
- /**
- * 윤년을 확인하고, 윤년이면 true를 반환합니다. 2자리 연도 확인이 불가능합니다. 또한
- *는 율리우스력을 올바르게 처리합니다.
- * @param 정수 $year 확인할 연도
- * @return boolean 윤년이면 true
- */
- 공개 정적 함수 isLeapYear($year)
- {
- $year = self::digitCheck($year);
- if ($year % 4 != 0)
- return false;
-
- if ($year % 400 == 0)
- return true;
- // 그레고리력(>1582)인 경우 400으로 나눌 수 없는 세기는 윤약이 아닙니다.
- else if ($year > 1582 && $year % 100 == 0)
- return false;
- true를 반환합니다.
- }
-
- /**
- * 2자리 연도를 수정하세요. 모든 세기에 걸쳐 작동합니다.
- * 두 자리 숫자가 30년 이상 미래라면 이전 세기를 가정합니다.
- * @param 정수 $y 연도
- * @return 정수 두 자리 연도를 여러 자리로 변경
- */
- 보호된 정적 함수 digitCheck($y)
- {
- if ($y < 100){
- $yr = (정수) 날짜("Y");
- $century = (정수) ($yr /100);
-
- if ($yr 0 > 50) {
- $c1 = $century 1;
- $c0 = $세기;
- } else {
- $c1 = $세기;
- $c0 = $세기 - 1;
- }
- $c1 *= 100;
- // 두 자리 연도가 미래의 30년 미만이면 이번 세기로 설정합니다.
- // 그렇지 않으면 미래의 30년 이상이면 두 자리 연도를 이전 세기로 설정합니다.
- if (($y $c1) < $yr 30) $y = $y $c1;
- else $y = $y $c0*100;
- }
- $y를 반환합니다.
- }
-
- /**
- * 연도를 4자리로 표현하여 반환합니다.
- * @param 정수 $y 연도
- * @return 연도를 나타내는 4자리 정수
- */
- 공개 정적 함수 get4DigitYear($y)
- {
- return self::digitCheck($y);
- }
- /**
- * 연, 월, 일의 조합이 유효한지 확인합니다.
- * @param 정수 $y 연도
- * @param 정수 $m 월
- * @param 정수 $d 일
- * @return 부울 유효한 날짜인 경우 true, 의미 확인만 가능합니다.
- */
- 공개 정적 함수 isValidDate($y,$m,$d)
- {
- return checkdate($m, $d, $y );
- }
-
- 공개 정적 함수 checkDate($date, $separator = "-") { //检查日期是否합법일期
- $dateArr =explore ($separator, $date);
- return self::isValidDate ($dateArr[0], $dateArr[1], $dateArr[2]);
- }
- /**
- * 시, 분, 초가 유효한지 확인합니다.
- * @param 정수 $h 시간
- * @param 정수 $m 분
- * @param 정수 $s 초
- * @param boolean $hs24 시간이 0부터 23까지인지 여부(기본값) 또는 1부터 12까지.
- * @return boolean 유효한 날짜인 경우 true, 의미 확인만 가능합니다.
- * @since 1.0.5
- */
- 공개 정적 함수 isValidTime($h,$m,$s,$hs24=true)
- {
- if($hs24 && ( $h < 0 || $h > 23) || !$hs24 && ($h < 1 || $h > 12)) false를 반환합니다.
- if($m > 59 || $m < 0) return false;
- if($s > 59 || $s < 0) return false;
- true를 반환합니다.
- }
-
- 공개 정적 함수 checkTime($time, $separator = ":") { //检查时间是否합법时间
- $timeArr =Explode($separator, $time);
- return self::isValidTime($timeArr[0], $timeArr[1],$timeArr[2]);
- }
-
- 공개 정적 함수 addDate($date, $int, $unit = "d") { //日期的增加
- $value = array('y'=>'' , 'm'=>'', 'd'=>'');
- $dateArr = 폭발( "-", $date);
- if(array_key_exists($unit, $value)){
- $value[$unit] = $int;
- }else{
- false를 반환합니다.
- }
- 반환 날짜("Y-m-d", mktime (0, 0, 0, $dateArr[1] $value['m'], $dateArr[2] $value['d'], $dateArr [0] $value['y']));
- }
-
- public static function addDateTime($date, $int, $unit = "d") { //날짜 추가
- $value = array('y'=>'', 'm' = >'', 'd'=>'', 'h'=>'', 'i'=>'')
- $dateArr = preg_split ( "/-|s|:/ " , $date);
- if(array_key_exists($unit, $value)){
- $value[$unit] = $int;
- }else{
- return false; 🎜> 반환 날짜("Y-m-d H:i:s", mktime($dateArr[3] $value['h'], $dateArr[4] $value['i'], $dateArr[5], $ dateArr [1] $value['m'], $dateArr[2] $value['d'], $dateArr[0] $value['y']))
- }
-
- 공개 static function addDayTimestamp($ntime, $aday) { //현재 시간 이후의 일수를 구하며, 증가 단위는 1
- $dayst = 3600 * 24
- $oktime = $ntime ($aday; * $dayst );
- return $oktime;
- }
-
- public static function dateDiff($begin, $end, $unit = "d") { //시간 비교 함수, 차이 반환 두 날짜 사이의 초, 분, 시간 또는 일
- $diff = strtotime($end) - strtotime($begin)
- switch($unit)
- {
- case "y": $retval = bcdiv($diff, (60 * 60 * 24 * 365)); break;
- 케이스 "m": $retval($diff, (60 * 60 * 24 * 30)); > 케이스 "w": $retval = bcdiv($diff, (60 * 60 * 24 * 7)); break
- 케이스 "d": $retval = bcdiv($diff, (60 * 60 * 24) ); 중단;
- 사례 "h": $retval = bcdiv(60 * 60)) 중단
- 사례 "i": $retval = bcdiv, 60);
- 케이스 "s": $retval = $diff; break;
- }
- return $retval; }
-
- 공개 정적 함수 getWeekDay($date, $separator = "- ") { //주어진 날짜의 요일 계산
- $dateArr =explore ($separator, $date);
- return date ("w", mktime ( 0, 0, 0, $dateArr [ 1], $dateArr[2], $dateArr[0]));
- }
-
- public static function timeFromNow($dateline) { //날짜를 XX일 XX년으로 표시합니다. 전
- if(empty($dateline)) return false
- $seconds = time() - $dateline
- if($seconds < 60){
- return "1분 전";
- }elseif($seconds < 3600){
- 반환 층($seconds/60)."분 전"
- }elseif($seconds < 24*3600){
- 반환 층 ($초/3600)."시간 전";
- }elseif($seconds < 48*3600){
- 반환 날짜("어제 H:i", $dateline).""; }else{
- return date('Y-m-d', $dateline);
- }
- }
-
- public static function transDateToChs($date) {
- if (empty ($ date)) return 'today';
- date_default_timezone_set('PRC');
- $dates = date ('m, d, year Y', strtotime ($date)); 🎜> }
-
- // 08/31/2004 => 2004-08-31
- 공개 정적 함수 TransDateUI($datestr, $type = 'Y-m-d') {
- if ( $datestr = = Null)
- Null 반환
- $target = $datestr
- $arr_date = preg_split ( "///", $target); ;
- $daystr = $arr_date[1]
- $yearstr = $arr_date[2]
- $result = 날짜($type, mktime (0, 0, 0, $monthstr, $daystr, $yearstr) );
- return $result;
- }
-
- // 2004년 12월 20일 오전 10:55 => 정적 함수 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 = 날짜($type, mktime ($hourstr, $ Minutesstr, 0, $ Monthstr, $ daystr, $yearstr));
- return $result;
- }
- }
- ?>
-
-
- 코드 복사
-
-
-
-
-
-
|