2012-06-08 16 views
9

इसी तरह के सवाल कर रहे हैं, लेकिन मैं किसी भी Doctrine2 विन्यास से संबंधित है, इसलिए यहाँ जाता है नहीं मिला ...UTC में संग्रहीत Doctrine2 दिनांक समय केवल

मैं इस पृष्ठ Doctrine2 के लिए समय-क्षेत्रों का वर्णन अधिक पढ़ा है, और मैं बस स्पष्ट करना चाहते हैं क्योंकि यह स्पष्ट नहीं है कि वास्तव में इसका उपयोग कैसे करें: http://doctrine-orm.readthedocs.org/en/latest/cookbook/working-with-datetime.html

मैं यूटीसी में डेटाटाइम स्टोर करना चाहता हूं ताकि प्रत्येक उपयोगकर्ता के पास उनके स्थान के आधार पर एक संबंधित टाइमज़ोन हो लेकिन डेटा सामान्य रूप से संग्रहीत हो।

असल में, डेटा स्टोर के लिए घंटे (9एएम पर खुला और उदाहरण के लिए 6 पीएम पर बंद) है। स्टोर अपने टाइमज़ोन का ट्रैक रखेगा, इसलिए जब स्टोर में कोई व्यक्ति "ओपन" समय सेट करता है, तो वे स्टोर के टाइमज़ोन से निपट रहे हैं, समय यूटीसी में परिवर्तित हो जाता है और डेटाबेस में संग्रहीत होता है। अगला जब कोई अलग उपयोगकर्ता स्टोर के घंटों को देखता है, तो वे खुले समय को अपने स्वयं के टाइमज़ोन या स्टोर टाइमज़ोन में देखेंगे। इससे कोई फर्क नहीं पड़ता क्योंकि मेरे पास यूटीसी में समय है, इसलिए मैं उन्हें किसी भी समय क्षेत्र में परिवर्तित कर सकता हूं।

तो सिद्धांत डॉक्स इस उदाहरण को दिखाने:

class UTCDateTimeType extends DateTimeType 
{ 
// ... 
} 

लेकिन यह कहना नहीं है कि यह कैसे उपयोग करने के लिए। क्या मुझे "डेटटाइम" के बजाय कॉलम को "यूटीसीडीएटटाइम" के रूप में घोषित करना होगा? इस वर्ग को कहां रहने की जरूरत है ताकि सिद्धांत पता हो कि प्रकार मौजूद है?

उत्तर

17

मैं सिर्फ Timestampable व्यवहार है कि एक सरल समाधान की तरह लगता है के बारे में एक पोस्ट के इस हिस्से में पाया गया:: यहाँ एक ब्लॉग पोस्ट जो करने के लिए तरीके की व्याख्या है

config.yml

doctrine: 
    dbal: 
     types: 
      datetime: Acme\DoctrineExtensions\DBAL\Types\UTCDateTimeType 
संबंधित मुद्दे