भविष्य पाठकों को निश्चित रूप से किसी दिन इस समस्या का सामना करेंगे रखने के लिए (यह पहली पोस्ट है अगर आप गूगल "स्ट्रिंग से सिम्फोनी 2 datetime"), ध्यान रखें कि सिम्फनी 2 में डेटटाइम ऑब्जेक्ट उस प्रारूप के साथ एक स्ट्रिंग स्वीकार नहीं करता है: "d/m/Y H:i:s"
, और शायद कई अन्य लोगों का समर्थन नहीं करता है।
बनने नहीं है कि कम से पागल के लिए, मैं वास्तव में पता चला है कि सबसे आसान व सुरक्षित समाधान ऐसी त्रुटियों से बचने के लिए इस एक है:
पहले, जो कुछ भी से स्ट्रिंग के लिए अपनी तिथि पाने आप जिस तरह का अनुरोध कर रहे हैं (मेरे मामले में एक सामान्य AJAX अनुरोध) और इसे डेटटाइम ऑब्जेक्ट में परिवर्तित करें, यह उदाहरण मानता है कि हमें 25/04/2015 15:00
के लिए डेटटाइम ऑब्जेक्ट बनाने की आवश्यकता है, जो कि jQuery UI italian DateTimePicker का प्रारूप है (यह सिर्फ एक उदाहरण है):
$literalTime = \DateTime::createFromFormat("d/m/Y H:i","25/04/2015 15:00");
(ध्यान दें: \
का उपयोग php के दिनांक समय वस्तु का उपयोग करने, और आप Symfony के datetime उद्देश्य यह है कि आप एक अपवाद फेंक देते हैं का उपयोग किया जाएगा)
फिर, एक बार आप इसे किया था, एक दिनांक स्ट्रिंग आराम का उपयोग कर बनाने के प्रारूप समारोह, पहले पैरामीटर उत्पादन प्रारूप की उम्मीद (Y-m-d H:i:s
) देकर:
$expire_date = $literalTime->format("Y-m-d H:i:s");
इस तरह आप 100% यकीन है कि जो कुछ भी तरह प्रारूप का आप गुजर रहे हैं या प्राप्त करने के लिए इस ठीक से conve हो जाएगा कि कर रहे हैं rted और आपको डेटटाइम सिम्फनी ऑब्जेक्ट, से किसी भी तरह का अपवाद नहीं मिलेगा जब तक कि आप इनपुट इनपुट के रूप में अपेक्षा करते हैं।
यह जानकर कि यह पोस्ट वास्तव में काफी पुराना है, मैंने अभी इसे पोस्ट करने का फैसला किया है क्योंकि मुझे कोई अन्य मूल्यवान स्रोत नहीं मिला है, लेकिन यह समझने के लिए कि समस्या कहां हो सकती है।
कृपया ध्यान दें कि सबसे अच्छा समाधान अभी भी सही प्रारूप में डेटाटाइम स्ट्रिंग को भेजने के लिए है, लेकिन यदि आपके पास सचमुच ऐसा करने का कोई तरीका नहीं है तो इस तरह की स्ट्रिंग को बदलने का सबसे सुरक्षित तरीका उपर्युक्त है।
क्या आप सुनिश्चित हैं कि '$ post [' start_at ']' क्या आप इसे चाहते हैं? क्या यह '$ _POST ['start_at']' नहीं है? –
इसके अलावा, 'डेटटाइम' ऑब्जेक्ट और विधियां त्रुटियों पर अपवाद फेंकती हैं। क्या आप उनमें से कोई नहीं मिला? 'कोशिश/पकड़' का उपयोग करने का प्रयास करें। –