سؤال

لقد حصلت على الخطأ/التحذير التالي أثناء محاولة تثبيت Kohana/SilverStripe.
ماذا يعني وماذا أفعل من أجله؟

Warning:
date_default_timezone_get():
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 'Asia/Calcutta' for '5.5/no DST' instead in C:\Server\apache\htdocs\kohana\system\core\Kohana.php on line 136

شكرا لك مقدما!

هل كانت مفيدة؟

المحلول

هذا ليس خطأ، ولكنه تحذير، لذا فهو لا يمنع تطبيقك من العمل.

قم بتعيين المنطقة الزمنية الصحيحة بشكل صريح باستخدام date_default_timezone_set() في C:\Server\Apache\htdocs\kohana\system\core\Kohana.php على السطر 136

عليك أن تختار من بينها مناطق زمنية صالحة


يحرر

كما تنص رسالة التحذير نفسها على أن لديك بالفعل خيارًا أكثر نظافةً من تحرير ملف برنامج تابع لجهة خارجية.أي.تكوين PHP كما ينبغي.

  • تحرير الخاص بك php.ini وضبط قيمة date.timezone = America/New_York

أو

  • إستخدم php_value التوجيه في تكوين خادم الويب الخاص بك لتعيينه في ملفك تكوين vhost أو .htaccess: php_value date.timezone America/New_York

نصائح أخرى

وتعليق وOP لسؤاله بك فوق يعني أن التوقيت الافتراضي لا يمكن تعيين في ملف php.ini، وهذا غير صحيح - في الواقع، في كثير من الحالات تحديد ذلك هناك <ط> فضل . ومنذ هذه الإجابة SO هي واحدة من الضربات الأولى في جوجل ل "بى خطأ التوقيت الافتراضي"، وأنا إنقاذ الآخرين بعض التعقل المفقود.

وثمة سبب شائع جدا لهذا الخطأ هو ليس ذلك بكثير على كتابتها المدينة أو المنطقة أو الدولة (على سبيل المثال "نيويورك"، "لوس انجليس") في ملف php.ini المستخدمة، ولكن بدلا من ذلك، لتشمل مساحات جزءا لا يتجزأ بدلا من يؤكد في المعرف، وبالتالي "كتابتها" ثابت كامل.

وهذا أيضا أن تفعل ما تريد، دون الحاجة إلى وضعها على كل صفحة في وقت التشغيل (التحقق على PHP 5.4 و 5.3 في Windows و Linux و OSX):

في <ط> ملف php.ini :

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

و
أيضا، إذا كنت قد فحص وإعادة فحص-الإملائي وهي <ط> بعض هو صحيح، تأكد من أنك تحرير <ط> الفعلي ملف php.ini الذي يتم استخدامه:

والسياق ويب (إنشاء ملف اختبار <ط> test.php ، ومن ثم تأكيد date.timezone هناك):     

 <?php phpinfo(); ?> 

وسطر الأوامر لينكس / OSX:

$ php -i | grep "timezone" 

وسطر الأوامر ويندوز:

C:\> php -i | find "timezone" 

و
هو مكتوبة ترتيب الأسبقية لاسترداد التكوين تاريخ التوقيت الافتراضي في التفاصيل <لأ href = "http://www.php.net/manual/en/function.date-default-timezone-get. فب "يختلط =" نوفولو "> هنا .

إذا لم يكن لديك القدرة على تغيير php.ini، هذا إضافة إلى _ss_environment.php أو mysite/_config.php الملفات الخاصة بك:

وdate_default_timezone_set('...');

وحيث ... هي واحدة من المناطق الزمنية PHP صالحة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top