programing

"날짜():시스템의 타임존 설정에 의존하는 것은 안전하지 않습니다.."

copysource 2022. 9. 22. 22:54
반응형

"날짜():시스템의 타임존 설정에 의존하는 것은 안전하지 않습니다.."

서버에서 PHP 버전을 5.2.17에서 PHP 5.3.21로 업데이트 요청했을 때 이 오류가 발생하였습니다.

<div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;">

<h4>A PHP Error was encountered</h4>

<p>Severity: Warning</p>
<p>Message:  date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'America/New_York' for 'EDT/-4.0/DST' instead</p>
<p>Filename: libraries/Log.php</p>
<p>Line Number: 86</p>

</div>
Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'America/New_York' for 'EDT/-4.0/DST' instead in /filelocation right here/system/libraries/Log.php on line 86

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'America/New_York' for 'EDT/-4.0/DST' instead in /filelocation right here/system/libraries/Log.php on line 99
<div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;">

<h4>A PHP Error was encountered</h4>

<p>Severity: Warning</p>
<p>Message:  date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'America/New_York' for 'EDT/-4.0/DST' instead</p>
<p>Filename: libraries/Log.php</p>
<p>Line Number: 99</p>

</div>

을 설정 수 .php.ini php.php.ini 파일에는 다음과 같은 블록이 있습니다.

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = America/New_York

그렇지 않으면 추가합니다(타임존을 자신의 타임존으로 대체).후 httpdhttpd」)를 재기동해 주세요.service httpd restart를 참조해 주세요.

지원되는 타임존 목록은 다음과 같습니다.

php.ini 설정을 변경할 수 없는 경우는, 코드 선두에 다음의 스니펫을 사용할 수도 있습니다.

date_default_timezone_set('Africa/Lagos');//or change to whatever timezone you want

타임존 목록은 http://www.php.net/manual/en/timezones.php에서 확인할 수 있습니다.

하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다.index.php파일입니다. XAMPP 서버에서 Apache 2.2 및 PHP 5.4로 애플리케이션을 옮겼을 때 처음 접하게 되었습니다.

의 내 your에서 하는 .index.php" " 가 "php.inifilename을 클릭합니다.

if( ! ini_get('date.timezone') )
{
    date_default_timezone_set('GMT');
}
<? print(gmdate("Y")); ?> 

대신

<? print(date("Y")); ?>

이 에러 메세지가 표시되지 않게 되었습니다.(위의 Chris 덕분에)

이러한 옵션이 아닌 경우

  • " " " 중php.ini.
  • " " " date_default_timezonediscl.discl.discl을 클릭합니다.

date해도 좋다gmdate.

사용한 적이 있다gmdate( "Y" )년 1 、 년 1 、

CodeIgniter를 사용하고 있으며 php.ini를 변경할 수 없는 경우 index.php의 선두에 다음을 추가했습니다.

date_default_timezone_set('GMT');

은 항상 안에 넣어두고 .index.php

date_default_timezone_set('Asia/Dhaka');

지원되는 시간대 목록(여기에 있음)

@저스티스는 나에게 올바른 방향을 알려줬지만, 그의 코드는 나에게 통하지 않았다.이것은 다음과 같습니다.

// set the default timezone if not set at php.ini
if (!date_default_timezone_get('date.timezone')) {
    // insert here the default timezone
    date_default_timezone_set('America/New_York');
}

문서: http://www.php.net/manual/en/function.date-default-timezone-get.php

이 솔루션은 완전한 시스템 액세스 권한이 없는 사용자만을 위한 것이 아닙니다.스크립트는 사용자 이외의 다른 사용자에게 제공할 때 필요합니다.스크립트를 다른 사용자에게 배포할 때 스크립트가 어떤 서버에서 실행될지 알 수 없습니다.

createbucket.php 스크립트를 컴포넌트에 삽입하려고 하면 타임존이 잘못되었다는 메시지가 계속 뜨기 때문에 이 문제가 계속 신경이 쓰이고 있습니다.

이 은 오직 과 같은이었다.$ sudo nano /etc/php.ini

시간대 검색

[Date]
; Defines the default timezone used by the date functions
; http://www.php.net/manual/en/datetime.configuration.php#ini.date.timezone
date.timezone = UTC

「」를 .;

그럼 마지막으로

$ sudo service httpd restart

그리고 당신은 가도 좋습니다. :)

나는 그것을 큰따옴표로 묶어야 했다.

date_default_timezone_set("America/Los_Angeles"); // default time zone

할 수 ..htaccess

php_value date.timezone UTC

date.timezone=을 설정하는 것 외에 php.ini 파일에서 date.timezone에 접근할 수 없는 오류가 발견되었습니다.제가 찾은 방법은 단말기의 명령줄에서 php를 실행하는 것이었습니다.이로 인해 114행에서 오류가 보고되었습니다.제 경우, 2개의 값 사이에 '|'가 있는 오류를 표시하는 설정을 수정하지 않았습니다.그것은 그것을 좋아하지 않았다.값 중 하나와 |를 삭제하면 모든 것이 정상입니다.

<? date_default_timezone_set('Europe/Istanbul'); ?>

php(또는 위치)의 경우.

2개의 타임존에 대한 간단한 방법.

<?php 
$date = new DateTime("2012-07-05 16:43:21", new DateTimeZone('Europe/Paris')); 

date_default_timezone_set('America/New_York'); 

echo date("Y-m-d h:iA", $date->format('U')); 

// 2012-07-05 10:43AM 
?>

도커 사용자의 경우: 프로젝트에 로컬 timezone.ini 파일을 만들고 docker-compose.yml로 설정을 합니다.

    volumes:
        - "./docker/config/timezone.ini:/usr/local/etc/php/conf.d/timezone.ini"

타임 존ini

    date.timezone=Australia/Sydney

빠른 은 "비호환성"에서 입니다.index.php 삭제:

아래의 행을 아래의 인덱스에 삽입하십시오.phpdefine( ‘_JEXEC’, 1 );

error_reporting( E_ERROR | E_PARSE | E_CORE_ERROR | E_CORE_WARNING | E_COMPILE_ERROR |
E_COMPILE_WARNING );

EC2 3 S3 、 us - west - 2 ( Oregon ) 。했을 때$s3client->listBuckets().- php 에 、 에 、 에 、 에 to to 。"Uncaught exception 'Exception' with message 'DateTime::__construct(): It is not safe to rely on the system's timezone settings...".저는 그것을 작동시키기 위해 아래와 같이 변경했습니다.누군가 유사한 문제에 직면해 있고 위의 답변 중 하나에 해당하는 경우 이러한 세부 정보를 공유하는 것은 도움이 되지 않습니다.

  1. AWS의 NTP(Network Time Protocol) 구성 설명서에 기반하여 ntpd 서비스 상태가 정상임을 확인했습니다.ntpstat명령어를 입력합니다.에러가 발생했을 경우는, 이 링크를 참조해 주세요.
  2. 파일 파일에는 다른 을 /etc/php.ini 파일(설치된 php 에 따라 다른 경로에 있는 경우도 있음)이 발견되었습니다.date.timezone는 어떤 값으로도 설정되어 있지 않으며 디폴트로 코멘트되어 있습니다.행을 ';'로 했습니다."UTC"파일을 저장했습니다.
  3. "http" "ntp" 를 및 ntp 을 재시작했습니다.sudo service httpd restart ★★★★★★★★★★★★★★★★★」sudo service ntpd restart명령어를 지정합니다.

그 후에는 예외 없이 버킷을 나열할 수 있습니다.이게 도움이 됐으면 좋겠다.

Plesk를 사용하는 경우 먼저 PHP 설정을 열고 페이지 하단에서 date.timezone을 DEFAULT에서 UTC로 변경합니다.

enter image description here

enter image description here

chroot 감옥에서 php-fpm을 실행하는 동안 오류가 발생했습니다.chroot 디렉토리에서 etc/php.ini와 /usr/share/zoneinfo를 작성하려고 했지만 작동하지 않았습니다.php-fpm 데몬에 어떤 파일이 없는지 스트레이스 해 보았지만, 아무것도 튀어나오지 않았습니다.

따라서 chroot용으로 설정된 php-fpm을 사용할 때 이 오류가 발생하여 구글이 사용자를 여기로 불러온 경우 이 행을 에 추가하여 수정할 수 있습니다./etc/php-fpm.d/www.conf를 참조해 주세요.

env[TZ] = America/New_York

활성화하려면 보통 php-fpm 재시작이 필요합니다.이게 누군가 도움이 됐으면 좋겠네요

특히, PHP-FPM(Fast CGI Process Manager)을 사용하도록 PHP를 설정했습니다.실행 시phpinfo()CLI에서 php.ini에서 설정한 올바른 시간대를 확인했지만 브라우저에서는 여전히 올바르지 않아 코드가 실패합니다.그냥 재기동만 하면 되는 거예요.php-fpmservice server. service on server. server.

service rh-php56-php-fpm restart

, 「 」, 「 」를 경우도 있습니다.httpd(서비스 시)php.ini

service httpd restart

CtrlX답변은 정답이지만 완전히 작동하지 않을 수 있습니다.다음 행을 php.ini 파일에 추가했습니다.

date.timezone = "America/Los_Angeles"

그러나 일부 PHP 스크립트가 하위 폴더에 있기 때문에 모든 파일의 PHP 오류가 제거되지는 않았습니다.따라서 .htaccess 파일을 편집하여 php.ini를 (서브폴더에서) 재귀적으로 사용하도록 설정해야 했습니다.

suphp_configpath /home/account_name/public_html

account_name은 cpanel 계정 이름이고 public_ini는 php.ini 파일이 있는 폴더입니다.

에 수 php.ini 「」를 합니다..htaccess도메인 또는 서브의 루트에 파일을 저장하고 다음 파일을 추가합니다(cpanel에 의해 생성됨:

<IfModule mime_module>
AddType application/x-httpd-ea-php56 .php .php5 .phtml
</IfModule>

<IfModule php5_module>
php_value date.timezone "America/New_York"
</IfModule>

<IfModule lsapi_module>
php_value date.timezone "America/New_York"
</IfModule>

이 문제를 해결하려면 두 가지 옵션이 있습니다.

먼저 php.ini 파일로 변경하고 기본 시간대를 설정합니다.

date.timezone = "America/New_York"

php.ini에서 시간대를 설정하면 서버가 재시작됩니다.

둘째, 필요에 따라 실행 시간 할당 시간대를 변경합니다.

date_default_timezone_set('America/New_York');

.htaccess 파일에서 다음을 수행하거나 만들었습니다.

php_value date.timezone Asia/Jakarta

하지만 효과가 없어요.그리고 php 버전을 5에서 7로 업그레이드하려고 했습니다.그리고 그것은 문제를 해결했다.

.date_default_timezone_set("Africa/Johannesburg");현재 위치를 기준으로 합니다.

언급URL : https://stackoverflow.com/questions/16765158/date-it-is-not-safe-to-rely-on-the-systems-timezone-settings

반응형