$date1 = $date2 = new DateTime();
$date2->add(new DateInterval('P3Y'));
अब $date1
और $date2
में एक ही तिथि है - अब से तीन साल। मैं दो अलग-अलग डेटाटाइम बनाना चाहता हूं, जिसे एक स्ट्रिंग से पार्स किया गया है और इसमें तीन साल शामिल हैं। वर्तमान में मैंने इसे इस तरह से हैक किया है:मैं डेटटाइम ऑब्जेक्ट की गहरी प्रतिलिपि कैसे करूं?
$date2 = new DateTime($date1->format(DateTime::ISO8601));
लेकिन यह एक भयानक हैक की तरह लगता है। क्या डेटटाइम ऑब्जेक्ट की गहरी प्रतिलिपि बनाने का कोई "सही" तरीका है?
मैं बिंदु प्रदर्शित करने के लिए उदाहरण में एक नया दिनांक समय इस्तेमाल किया , लेकिन अब मान लें कि डेटटाइम कुछ अपारदर्शी एपीआई से वापस आ गया है कि मैं फिर से कॉल नहीं कर सकता। उदाहरण के लिए, मेरे पास एक ऐसा फ़ंक्शन है जो ऑर्डर को नियंत्रित करता है जो डेटटाइम देता है, जब ग्राहक अगली जगह ऑर्डर कर सकता है। एक प्रतिलिपि बनाने के लिए फ़ंक्शन को कॉल करना साइड इफेक्ट्स उत्पन्न करता है जो मैं नहीं चाहता हूं। –
मैंने वास्तव में इसका परीक्षण नहीं किया है, लेकिन इसका उल्लेख php.net पर किया गया है कि यह केवल PHP 5.3 और अधिक के लिए उपलब्ध है। –
@ हूगो: हां, डेटटाइम क्लास को PHP 5.3 की आवश्यकता है। –