"তারিখ (): সিস্টেমের টাইমজোন সেটিংসের উপর নির্ভর করা নিরাপদ নয় ..."


359

আমি সার্ভারে পিএইচপি সংস্করণ 5.2.17 থেকে পিএইচপি 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>

উত্তর:


556

আপনার php.iniফাইলটির একটি কনফিগারেশন লাইনে টাইমজোন সম্ভবত লাগানো দরকার । আপনার php.ini ফাইলে এর মতো একটি ব্লক থাকা উচিত:

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

যদি তা না হয় তবে এটি যুক্ত করুন (আপনার দ্বারা সময় অঞ্চলটি প্রতিস্থাপন করুন)। কনফিগার করার পরে, httpd ( service httpd restart) পুনরায় চালু করতে ভুলবেন না ।

সমর্থিত সময় অঞ্চলগুলির তালিকা এখানে ।


12
পরিষ্কার হতে হবে, এই পরিবর্তনটি করার পরে, পরিষেবাটি অ্যাপাচি 2 পুনরায় চালু করতে ভুলবেন না
রায়ান

2
অন্যান্য সমাধানগুলি যখন সমাধান করে না তখন এটি আমার জন্য এটি সমাধান করে। আমি কেবল তখনই এই ত্রুটিটি পেয়েছি যখন আমি একই পৃষ্ঠায় অ্যামাজন এসইএসের সাথে সংহতকরণের জন্য তারিখ ফাংশন ব্যবহার করি। সম্ভবত এটি অন্য কাউকে সাহায্য করবে।
মাস্টার_গ্র্যাসি

9
আপনি যদি আপনার ক্লায়েন্ট টার্মিনালের মধ্যে পিএইচপি সিএলআই (পিএইচপি -আর বা পিএইচপি -a) ব্যবহার করছেন তবে আপনাকে সিপিএল php.ini ফাইলটি সম্পাদনা করতে হবে, অ্যাপাচি 2 নয়। আপনার সি সি এল এ পিএইচপি.আইএনআই ফাইলটি সাধারণত
/etc/php5/cli/php.ini-

2
উইন্ডোজ / আইআইএসের কার্যকর হওয়ার জন্য অ্যাপাচি সম্পর্কে প্রথম মন্তব্যটির মতো আপনাকে অবশ্যই আইআইএস পুনরায় চালু করতে হবে।
পুরো

2
এটি আমার সমস্যার সমাধান! আমার মতো অ-বিশেষজ্ঞদের জন্য কেবলমাত্র একটি তথ্য, php.iniঅ্যাপাচি দ্বারা ব্যবহৃত সন্ধানের জন্য, নিম্নলিখিত কমান্ডটি কার্যকর করুন php -i | grep php.ini
জোল সালামিন

198

আপনি যদি আপনার php.ini কনফিগারেশনটি পরিবর্তন করতে না পারেন তবে আপনি নিজের কোডের শুরুতে নিম্নলিখিত স্নিপেটটি ব্যবহার করতে পারেন:

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

সময় অঞ্চলগুলির তালিকা http://www.php.net/manual/en/imezones.php এ পাওয়া যাবে ।


7
কোনও কারণে তারিখটি নির্ধারণ করার জন্য timeটাইমজোন = আমেরিকা / নিউ_ইয়র্কে আমার php.ini এ পুনরায় চালু করুন এবং সুইফটমিলার ব্যবহার করে স্ক্রিপ্ট চালানোর সময় অ্যাপাচি এই ত্রুটি বার্তাটি থামেনি। আমি ডেট_ডিফল্ট_টাইমজোন_সেট ('আমেরিকা / নিউ_ইয়র্ক') যুক্ত করার পরেও শেষ হয়েছি; প্রস্তাবিত স্ক্রিপ্ট শীর্ষে। ধন্যবাদ!
কাইল

আমি আপনার সমাধান চেষ্টা করেছিলাম। এখন, ত্রুটি 500 অভ্যন্তরীণ সার্ভার ত্রুটি। আমি অ্যাপাচি ২.x এবং কোডিগনিটার ব্যবহার করছি।
হাফিজ শেহবাজ আলী

@ শেহবাজআলি আপনি নিশ্চয়ই কিছু ভুল করেছেন। আপনার কোন স্ক্রিপ্টে স্নিপেট যুক্ত করেছেন?
বাবাতুন্দে আডেমি

একই কোড উত্পাদন কাজ করছে। কোন ত্রুটি নেই। আমি অ্যাপাচি, পিএইচপি এবং মাইএসকিউএলটি উইন্ডো 10 তে ম্যানুয়ালি ইনস্টল করেছি PH পিএইচপি, মাইএসকিউএল এবং অ্যাপাচি কাজ করে। তবে, এই প্রকল্পটি ত্রুটি দিচ্ছে।
হাফিজ শেহবাজ আলী

72

আপনার index.phpফাইলটিতে নিম্নলিখিতগুলি যুক্ত করুন। আমি যখন আমার এক্সএএমপিপি সার্ভার থেকে অ্যাপ্লিকেশনটি অ্যাপাচি ২.২ এবং পিএইচপি ৫.৪ এ স্থানান্তরিত করেছি তখন আমি প্রথমে এটি জুড়ে এসেছি ...

আমি আপনাকে index.phpফাইলের পরিবর্তে আপনার ফাইলটিতে এটি করার পরামর্শ দেব php.ini

if( ! ini_get('date.timezone') )
{
    date_default_timezone_set('GMT');
}

3
আপনি যখন অগত্যা পূর্ণ সিস্টেম অ্যাক্সেস না পেয়ে থাকেন তখন এর জন্য দুর্দান্ত সমাধানটি অনুমান করুন যে এটি হ'ল সীমিত অ্যাক্সেসযুক্ত লোকদের জন্য বা আরও শক্তিশালী সমাধানের প্রয়োজন এবং এটি php.ini সম্পাদনা করার সাথে মিলিয়ে যদি আপনি পারেন
aqm

18
<? print(gmdate("Y")); ?> 

পরিবর্তে

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

আমার জন্য কাজ করেছে (বর্তমান বছর দেখায় এবং ত্রুটির বার্তাটি আর দেখায় না)। (উপরে ক্রিসকে ধন্যবাদ)


15

এগুলি যদি আপনার বিকল্প না হয়

  • সংশোধন করা হচ্ছে php.ini
  • date_default_timezoneকল যোগ করা হচ্ছে ।

পরিবর্তে dateআপনি ব্যবহার করতে পারে gmdate

আমি gmdate( "Y" )যখন কপিরাইট স্নিপলেট জন্য একটি বছর প্রয়োজন আমি ব্যবহার করেছি।


14

আপনি যদি কোডআইগনিটার ব্যবহার করছেন এবং php.ini পরিবর্তন করতে না পারেন তবে আমি সূচকগুলির শুরুতে নিম্নলিখিতগুলি যুক্ত করেছি:

date_default_timezone_set('GMT');

এটি আমার পক্ষে কাজ করে, আপনার সহায়তার জন্য হোসে ধন্যবাদ। শুভেচ্ছা, সারিম গনি আই -স্প্ল্যাডিডডটকম
স্যারিম শেখানী

এটি নেটিভ পিএইচপি php.net/manual/en/function.date-default-timezone-set.php এ কাজ করে । TY, আপনি আমাকে সঠিক ট্র্যাকের উপরে রেখেছিলেন। সম্পর্কের ক্ষেত্রে এখানে ফাংশনের জন্য টাইমজোন তালিকা দেখুন php.net/manual/en/imezones.php
লুই লাউডোগ ট্রোটিয়ার


11

@ জাস্টিস আমাকে সঠিক দিকে নির্দেশ করেছেন, কিন্তু তার কোডটি আমার পক্ষে কার্যকর হয়নি। এটি করেছে:

// 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

এই সমাধানটি কেবল তাদের জন্য নয় যাদের পুরো সিস্টেম অ্যাক্সেস নেই। কোনও স্ক্রিপ্টের জন্য এটি প্রয়োজনীয় যখন আপনি এটি অন্য কাউকে সরবরাহ করেন। আপনি কখনই জানেন না যে আপনি যখন অন্য কারও কাছে বিতরণ করবেন তখন স্ক্রিপ্টটি কোন সার্ভারে চলবে।


5

আমি ইম্প্রেসিকে "ক্রিয়েটবকেট.এফপি" স্ক্রিপ্ট ইনজেক্ট করার চেষ্টা করছিলাম এবং আমার টাইম-জোনটি ভুল বলে রাখা হচ্ছে বলে এই সমস্যাটি আমাকে কিছু সময়ের জন্য বাগিয়ে দিচ্ছে।

শেষ পর্যন্ত সমস্যাটিকে স্থির করার একমাত্র বিষয়টি ছিল: $ 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

এবং আপনি যেতে ভাল হবে :)


5

আমাকে এটি ডাবল কোটে রেখে দিতে হয়েছিল।

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

তবুও কোনও কাজ হয়নি (ম্যাক ওএসএক্সে), তাই শেষ পর্যন্ত আমি ভেঙে যোগ করেছি/etc/php.ini: date.timezone = America/Los_Angeles
মার্কহু

3

আপনি আপনার .htaccessফাইলে সময় অঞ্চল সেট করতে পারেন

php_value date.timezone UTC

এটি php.ini ক্ষেত্রে কাজ করা উচিত এটি সেট করা সত্ত্বেও সতর্কতা ফিরিয়ে দেয় (পিএইচপি 5.4। *)। আমার জন্য কাজ করেছেন।
ক্রিশ্চিয়ান বোনাটো

2

বেশ কয়েকটি উত্তরে যেমন ডেট.টাইমজোন = সেট করা ছাড়াও, আমি পিএইচপি.আইএনআই ফাইলে একটি ত্রুটি পেয়েছি যা ডেট.টাইমজোন থেকে আসা থেকে বিরত ছিল। টার্মিনালে কমান্ড লাইন থেকে পিএইচপি চালিয়ে আমি যেভাবে এটি পেয়েছি। এটি 114 নং লাইনে একটি ত্রুটি জানানো হয়েছে my 2 টি মানের মধ্যে। এটা ভাল লাগেনি। আমি একটি মান এবং | এবং তারপরে সবকিছুই ভাল ছিল


1

দুটি টাইম জোনের জন্য একটি সহজ পদ্ধতি।

<?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 
?>


0

আপনার অসম্পূর্ণতাগুলি সংশোধন করার সময় একটি দ্রুত সমাধান হ'ল আপনার index.phpফাইলে ত্রুটি প্রতিবেদন অক্ষম করা :

আপনার মধ্যে নিচের লাইন ঢোকান index.php নিচেdefine( ‘_JEXEC’, 1 );

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

0

আমি আমাদের পশ্চিম -২ (ওরেগন) অঞ্চলে আমার ইসি 2 এবং এস 3 বালতি হোস্ট করছি। আমি যখন $s3client->listBuckets()আমার পিএইচপি-তে বিদ্যমান বালতিগুলি তালিকাবদ্ধ করার জন্য ফোন দিচ্ছিলাম তখন আমি ব্যতিক্রম পাচ্ছিলাম -"Uncaught exception 'Exception' with message 'DateTime::__construct(): It is not safe to rely on the system's timezone settings...". পাচ্ছিলাম এটির কাজ করার জন্য আমি নীচে পরিবর্তনগুলি করেছি। যদি কেউ একই রকম সমস্যার মুখোমুখি হয় এবং উপরের উত্তরগুলির কোনওরাই সহায়তা না করে তবে এই বিবরণগুলি ভাগ করে নেওয়া।

  1. ডকুমেন্টেশনের ভিত্তিতে @ এডাব্লুএস কনফিগারিং নেটওয়ার্ক টাইম প্রোটোকল (এনটিপি) , আমি নিশ্চিত করেছি যে এনটিপিডি পরিষেবা স্থিতি চলমান দ্বারা ঠিক আছেntpstat কমান্ড । আপনি যদি ত্রুটি পান তবে এই লিঙ্কটি আপনাকে কী ভুল হচ্ছে তা জানাতে সহায়তা করে।
  2. /Etc/php.ini ফাইলটি খোলা হয়েছে (কিছু পিএইচপি ইনস্টল হওয়া সংস্করণের উপর ভিত্তি করে এটি পৃথক পথে থাকতে পারে) এবং এটি পাওয়া যায় যে date.timezoneকোনও মান সেট করা হয়নি এবং এটি ডিফল্টরূপেও মন্তব্য করা হয়েছিল। আমি 'অপসারণ করে' অন-মন্তব্য করেছি; এই রেখার আগে এবং এর মান সেট করুন"UTC" এবং ফাইলটি সংরক্ষণ করে।
  3. কমান্ড sudo service httpd restartএবং sudo service ntpd restartকমান্ড ব্যবহার করে http এবং ntp ডিমন পুনরায় চালু করুন ।

এর পরে আমি কোনও ব্যতিক্রম ছাড়াই সাফল্যের সাথে বালতি তালিকাভুক্ত করতে সক্ষম। আশাকরি এটা সাহায্য করবে.


0

আপনি যদি প্লেস্ক ব্যবহার করে থাকেন তবে প্রথমে পৃষ্ঠার নীচে পিএইচপি সেটিংস খুলুন, চেষ্টা করুন, তারিখ.টাইমজোনটি ডিফল্ট থেকে ইউটিসি-তে পরিবর্তন করুন।

এখানে চিত্র বর্ণনা লিখুন

এখানে চিত্র বর্ণনা লিখুন


0

ক্রুট কারাগারে পিএইচপি-এফপিএম চালাতে আমার এই ত্রুটি হয়েছিল। আমি chroot ডিরেক্টরিতে ইত্যাদি / php.ini এবং / usr / শেয়ার / জোনিনফো তৈরি করার চেষ্টা করেছি, তবে এটি কার্যকর হয়নি। এমনকি কোনও ফাইলটি অনুপস্থিত রয়েছে তা দেখার জন্য আমি পিএইচপি-এফপিএম ডেমনগুলি স্ট্রেস-ইনগ করার চেষ্টা করেছি - কিছুই লাফিয়ে যায়নি।

সুতরাং গুগল আপনাকে এখানে এনেছে কারণ আপনি ক্রুটের জন্য পিএইচপি-এফপিএম ব্যবহার করার সময় এই ত্রুটিটি পেয়েছেন, আপনি সম্ভবত /etc/php-fpm.d/www.confENV বিভাগে এই লাইনটি যুক্ত করে এটি ঠিক করতে পারেন :

env[TZ] = America/New_York

এটি কার্যকর হওয়ার জন্য সাধারণত একটি পিএইচপি-এফপিএম পুনঃসূচনা প্রয়োজন। আশা করি এটি কাউকে সাহায্য করবে।


0

আমার বিশেষ ক্ষেত্রে, আমার পিএইচপি পিএইচপি-এফপিএম (ফাস্টসিজিআই প্রক্রিয়া পরিচালক) ব্যবহারের জন্য কনফিগার করা আছে। phpinfo()সিএলআই থেকে নির্বাহ করার সময় আমি সঠিক টাইমজোনটি দেখেছি যা আমি php.ini তে সেট করেছিলাম, তবে এটি ব্রাউজারে এখনও ভুল ছিল এবং আমার কোডটি ব্যর্থ করেছিল। আমার কেবল php-fpmসার্ভারে পরিষেবাটি পুনরায় চালু করা দরকার ।

service rh-php56-php-fpm restart

আপনি httpdযদি সম্পাদনা সম্পাদনা করেন তবে আপনাকে পরিষেবাটি পুনঃসূচনা করার প্রয়োজনও হতে পারেphp.ini

service httpd restart

0

সিটিআরএলএক্সের উপরের এই উত্তরটি সঠিক উত্তর, তবে এটি সম্পূর্ণরূপে কাজ করবে না। আমি এই লাইনটি আমার php.ini ফাইলটিতে যুক্ত করেছি:

date.timezone = "America/Los_Angeles"

তবে এটি আমার সমস্ত ফাইলের জন্য পিএইচপি ত্রুটি সরিয়ে ফেলেনি কারণ আমার কিছু পিএইচপি স্ক্রিপ্ট সাবফোল্ডারে রয়েছে। সুতরাং আমাকে পুনর্বিবেচনার জন্য (সাবফোল্ডারগুলিতে) ব্যবহার করতে php.ini সেটআপ করতে .htaccess ফাইলটি সম্পাদনা করতে হয়েছিল:

suphp_configpath /home/account_name/public_html

যেখানে অ্যাকাউন্ট_নামটি আপনার সিপিএন অ্যাকাউন্টের নাম এবং সর্বজনীন_ এইচটিএমএল আপনার php.ini ফাইলটি ফোল্ডারে রয়েছে।


0

ডকার ব্যবহারকারীর জন্য: আপনার প্রকল্পে একটি স্থানীয় টাইমজোন.আইআই ফাইল তৈরি করুন, ডকার-কমপোজ.আইএমএল এ কনফিগারেশন সেট আপ করুন,

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

timezone.ini

    date.timezone=Australia/Sydney

0

আপনার যদি ফাইলটিতে অ্যাক্সেস না থেকে থাকে তবে আপনার ডোমেন বা সাবের মূলে php.iniএকটি .htaccessফাইল তৈরি বা সম্পাদনা করুন এবং এটি (সিপ্যানেল দ্বারা উত্পন্ন) যুক্ত করুন:

<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>

সাধারণ কেসিং কনভেনশন আপনি কী বলতে চান তা প্রকাশ করতে পারে সে ক্ষেত্রে দয়া করে মূলধনীর শব্দ ব্যবহার না করার চেষ্টা করুন।
shizhen

0

এর সমাধানের জন্য দুটি বিকল্প রয়েছে

প্রথমে, php.ini ফাইলে পরিবর্তন করে ডিফল্ট টাইমজোন রাখুন

date.timezone = "America/New_York"

একবার, আপনি php.ini টাইমজোন সেট করেছেন করে সার্ভারটি পুনরায় চালু করবেন

দ্বিতীয়ত, আপনার প্রয়োজনের ভিত্তিতে রান টাইম নির্ধারিত সময় অঞ্চল পরিবর্তন করুন

date_default_timezone_set('America/New_York');

-1

আপনার সংযোগ পৃষ্ঠায় date_default_timezone_set("Africa/Johannesburg");আপনার বর্তমান অবস্থানের উপর ভিত্তি করে একটি কোড রাখুন ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.