코드 복사 코드는 다음과 같습니다.
echo mktime(11,25) ,0, 9,5,2010);//시간과 동일
echo microtime()
echo mktime(0,0,0,1,1,1970)
?> >
코드 복사 코드는 다음과 같습니다.
echo date ("H i l d F" ,1283657100);
echo gmdate("H i l d F",1283657100)
echo strftime("%Hh%M %A %d %b"
//strftime()은 특수 형식 문자 앞에 퍼센트 기호 %가 와야 한다는 점을 제외하면 date()와 다르지 않습니다.
echo strtotime("2010-9-5 11:25:00")
var_dump(getdate (time()))
?> 출력은 11 25 9월 5일 일요일 03 25 9월 5일 일요일 11h25 9월 5일 일요일 1283657100, array(11) {
["seconds"]=>
int(9)
//시간 형식function sgmdate($dateformat, $timestamp =' ', $format=0) { 전역 $_SCONFIG, $_SGLOBAL;
if(empty($timestamp)) {$timestamp = $_SGLOBAL['timestamp']
}
$timeoffset = strlen($_SGLOBAL['member']['timeoffset'])>0?intval($_SGLOBAL['member']['timeoffset']):intval($_SCONFIG['timeoffset'] );
$result = '';
if($format) {
$time = $_SGLOBAL['timestamp'] - $timestamp;
if($time > 24*3600) {
$result = gmdate($dateformat, $timestamp $timeoffset * 3600)
} elseif ($time > 3600) {
$result = intval($time/3600).lang(' hour' ).lang('before');
} elseif ($time > 60) {
$result = intval($time/60).lang('분').lang('before' );
} elseif ($time > 0) {
$result = $time.lang('second').lang('before')
} else {
$result = lang( '지금');
}
} else {
$result = gmdate($dateformat, $timestamp $timeoffset * 3600)
}
return $result; }
if($format){}의 내용을 직접 살펴보겠습니다. 먼저 시스템의 현재 시간과 내가 전달한 시간(보통 데이터베이스의 시간, 예를 들어 2010-9-4 21:00:00). 시차가 1일 이내이면 결론이 직접 도출됩니다(예: 2시간 전). 1일보다 크면 gmdate가 호출됩니다. 나는 여기서 그것을 이해하지 못합니다. date($timestamp) 대신 이 이상한 함수를 직접 호출하는 이유는 무엇입니까? 이게 도대체 무슨 뜻이야?
gmdate
핀란드(GMT 0200)에서 실행하면 아래 첫 번째 줄은 "Jan 01 1998 00:00:00"을 인쇄하고 두 번째 줄은 "Dec 31 1997 22:00:00"을 인쇄합니다.
echo date("M d Y H:i:s ", mktime(0, 0, 0, 1, 1, 1998)); echo gmdate("M d Y H:i:s", mktime(0, 0, 0, 1, 1, 1998)); ?>
즉, gmdate는 시차를 고려했습니다. 며칠 전이 아닌 표준 시간 형식이 여기에 출력됩니다.
다음으로 uhome의 function_common에 있는 함수들을 집중적으로 살펴보겠습니다
코드를 복사하세요
/ /String time function sstrtotime($string) { global $_SGLOBAL, $_SCONFIG; $time = '' if($string) {
$time = strtotime($ 문자열) ;if(gmdate('H:i', $_SGLOBAL['timestamp'] $_SCONFIG['timeoffset'] * 3600) != date('H:i', $_SGLOBAL['timestamp'] )) {
$time = $time - $_SCONFIG['timeoffset'] * 3600
}
}
$time 반환
}
이 기능에는 기능이 거의 없지만 제가 보기엔 많이 어렵습니다. 이는 시간 문자열을 타임스탬프로 변환하는 것입니다. 예를 들어 여기에 입력한 값은 2010 9 4 21:08이고 $time 값은 이 시간과 1970년 1월 1일 00:00:00 GMT 사이의 시차입니다. $_SGLOBAL[''timestamp] 값은 실제로 $time과 동일한 방식으로 계산되지만, 값이 약간 다를 수 있습니다. $_SCONFIG['timeoffset']은 구성 테이블에 있으며 현재 값은 8입니다. 시스템 타임존이 맞는지, 틀린지 $_SCONFIG['timeoffset']를 통해 확인해야 하는 상황이 있습니다. gmdate는 시스템 시간대를 통해 들어오는 타임스탬프(프로그램이 실행되는 장소의 타임스탬프)를 전달하여 해당 시간의 그리니치 시간을 가져옵니다. 시스템 시간대가 올바르게 설정된 경우 이는 정확히 하나의 플러스와 하나의 마이너스이며 후자와 동일합니다(사실 여기서 $_SGLOBAL[''timestamp] 값은 관련이 없습니다). 정상이면 $time을 변경할 필요가 없습니다. 비정상이면 줄여야 합니다. 그런데 또 이게 도대체 무슨 뜻일까요?
위 내용은 감마 함수를 포함한 PHP 날짜 처리 함수와 uchome의 function_coomon에 있는 날짜 처리 함수에 대한 연구를 소개한 것입니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되길 바랍니다.