최근에는 인터넷과 컴퓨터 기술의 급속한 발전으로 다양한 웹사이트 개발 언어도 등장하고 있으며, 웹 개발 분야에서 널리 사용되는 프로그래밍 언어로 PHP(Hypertext Preprocessor)가 등장하게 되었습니다. 개발자들 사이에서 가장 좋아하는 언어입니다. 그러나 PHP를 사용하여 웹 사이트를 개발하는 과정에서 필연적으로 몇 가지 문제에 직면하게 됩니다. 이 기사에서는 PHP에서 데이터를 호출할 때 발생할 수 있는 시간 표시 왜곡 문제에 중점을 두고 이에 대한 해결 방법을 제공합니다.
PHP는 데이터 처리 및 대화형 작업에 자주 사용되는 서버 측 언어이므로 현재 시간 가져오기, 타임스탬프를 시간으로 변환 등 많은 프로젝트에서 시간 처리가 필요합니다. PHP에서는 일반적으로 현재 시간을 가져오는 데 date() 함수를 사용합니다. 그러나 시간 데이터를 호출할 때 시간 표시가 왜곡되는 경우가 있습니다. 이는 PHP와 MySQL의 시간 인코딩 방식이 일관되지 않기 때문에 발생합니다.
이 문제를 해결하려면 먼저 시간 인코딩의 기본 개념을 이해해야 합니다. MySQL의 시간 데이터 유형에는 DATE, TIME, DATETIME 및 TIMESTAMP가 포함됩니다. 그 중 DATE 유형은 'YYYY-MM-DD' 형식으로 날짜를 나타내고, TIME 유형은 'HH:MM:SS' 형식으로 시간을 나타냅니다. 'YYYY-MM-DD HH:MM:SS'의 TIMESTAMP 유형도 날짜와 시간을 나타내지만 그 형식은 UNIX 타임스탬프 형식, 즉 1970년 1월 1일 자정부터 현재까지의 초 수(그리니치 시간)입니다. '1526713521'로. PHP에서 일반적으로 사용되는 함수는 다음과 같습니다.
MySQL과 PHP의 시간 인코딩 방식이 일치하지 않으면 시간 표시가 깨질 수 있습니다. 따라서 실제 필요에 따라 해당 시간 인코딩 변환을 수행해야 합니다.
구체적인 해결 방법은 다음과 같습니다.
$datetime = '2018-05-19 12:30:45';
$timestamp = strtotime($ datetime);
$time = date('Y year m Month d day H:i:s', $timestamp);
그 중 $datetime은 MySQL의 시간 문자열, $timestamp는 타임스탬프, $time 포맷 시간이 지났습니다.
$db = new mysqli($host, $user, $password, $database);
$stmt = $db-> ;prepare( "SELECT CONVERT(content USING utf8) as content, time FROM news;");
$stmt->execute();
이 명령문에서는 CONVERT 함수를 사용하여 콘텐츠 필드를 기본값에서 변환합니다. 데이터베이스의 인코딩을 UTF-8 인코딩으로 변환합니다.
간단히 말하면, PHP에서 시간 데이터를 호출할 때 문자가 깨지는 문제는 본질적으로 PHP와 MySQL의 시간 인코딩 방식이 일치하지 않기 때문에 데이터 형식을 변환하고 트랜스코딩해야 하기 때문입니다. 위의 방법을 사용하면 이 문제를 효과적으로 해결하고 시간 표시가 정상인지 확인할 수 있습니다.
위 내용은 PHP 호출에 표시된 데이터 시간이 왜곡되면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!