Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

UTC समय क्षेत्र को सही करने के लिए वेब और डेटाबेस सर्वर सेटिंग्स

यदि आप स्वयं को MySQL DATE और DATETIME प्रकारों तक सीमित रखते हैं, तो आप MySQL में ही समय क्षेत्र के मुद्दों को काफी हद तक अनदेखा कर सकते हैं। आप MySQL के TIMESTAMP प्रकार से बचना चाहते हैं क्योंकि:

जहां तक ​​DATETIME मानों को पढ़ने/लिखने की बात है, आपको ठीक वही मिलेगा जो आपने डाला है, जो अच्छा है।

इससे आपको हमेशा यह सुनिश्चित करने की समस्या का सामना करना पड़ता है कि आप डेटाबेस में यूटीसी मान लिख रहे हैं।

यह सुनिश्चित करने का सबसे अच्छा तरीका है कि PHP यूटीसी का उपयोग कर रहा है, इसे date_default_timezone_set() . यह सुनिश्चित करेगा कि कॉल जैसे date('Y-m-d H:i:s') आपको यूटीसी मूल्य देगा। यह भी सुनिश्चित करेगा कि (new \DateTime('now'))->getTimezone() जैसा कुछ एक UTC \DateTimeZone उदाहरण लौटाएगा।

आपको निश्चित रूप से ध्यान रखना चाहिए कि जब आप उपयोगकर्ताओं से लिए गए दिनांक/समय मानों को संग्रहीत कर रहे हों तो चीजें काफी कठिन हो जाती हैं। उन मामलों में, आपको किसी तरह यह निर्धारित करने की आवश्यकता होगी कि उपयोगकर्ता किस समय क्षेत्र में है, और मूल्यों को बनाए रखने से पहले यूटीसी में रूपांतरण को संभालना होगा। यह मानते हुए कि आपके उपयोगकर्ताओं के पास कुछ प्रति-उपयोगकर्ता समयक्षेत्र सेटिंग है, आप मूल रूप से कुछ ऐसा करते हैं:

/** @var \DateTimeZone $userTZ */
$userTz = getUserTimezone();
$dateTime = new \DateTime($user_submitted_date_string, $userTz);
$dateTime->setTimezone(new \DateTime('UTC'));
$dateTimeStr = $dateTime->format('Y-m-d H:i:s');


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySql संग्रहीत कार्यविधि लूप कर्सर - सिंटैक्स त्रुटि

  2. प्रपत्र डेटाबेस में सहेजा नहीं जा रहा है

  3. MySQL में त्रिभुज का प्रकार

  4. क्या प्रतिकृति-पुनर्लेखन-डीबी का कोई वास्तविक विश्व अनुप्रयोग है?

  5. MySQL में सप्ताह दर सप्ताह प्रतिशत वृद्धि की गणना कैसे करें