2012-05-02 16 views
6

मैं इस बहुत सरल कोड है:DateInterval साथ दिनांक समय महीने जोड़ना मूल तारीख में परिवर्तन नई तारीख से मिलान करने के

$start_date = new DateTime($post['start_date']); 
$end_date = $start_date->add(new DateInterval('P6M')); 
echo $start_date->getTimestamp(); // 1351836000 
echo $end_date->getTimestamp(); // 1351836000 
बेशक

, दोनों एक ही टाइमस्टैम्प के रूप में आ सकती है क्योंकि दिनांक अंतराल जोड़ने मूल $ प्रारंभ_तिथि को प्रभावित करता है । तो मैं इस बारे में कैसे जा सकता हूं ताकि मैं मूल $ start_date को अभी तक एक और चर में 6 महीने जोड़ सकूं?

$start_date = new DateTime($post['start_date']); 
$start_date_actual = $start_date; 
$end_date = $start_date_actual->add(new DateInterval('P6M'))->getTimestamp(); 

उत्तर

12

चर वस्तुओं, नहीं खुद वस्तुओं के लिए संदर्भ पकड़ो। इसलिए असाइनमेंट आपको ऑब्जेक्ट की कई प्रतियों की तुलना में एक ही ऑब्जेक्ट पर इंगित करने वाले अधिक चर नहीं देता है।

आप प्रतिलिपि बनाना चाहते हैं हैं, तो clone कीवर्ड का उपयोग करें:

$end_date = clone $start_date; 
$end_date->add(new DateInterval('P6M')); 
+0

कुछ नया हर रोज जानें। धन्यवाद, मार्क! – dallen

1

आप अपने पिकअप ले जा सकते हैं:

मैं कोई भाग्य के साथ इस कोशिश की

$start_date = new DateTime($post['start_date']); 
$end_date = new DateTime($post['start_date']); 
$end_date->add(new DateInterval('P6M')); 

या

$start_date = new DateTime($post['start_date']); 
$end_date = clone $start_date; 
$end_date->add(new DateInterval('P6M')); 
0

क्लोन आरंभ तिथि आप इसे संशोधित करने से पहले:

$start_date = new DateTime(); 
$end_date = clone $start_date; 
$end_date->add(new DateInterval('P6M')); 
echo $start_date->getTimestamp(); 
echo $end_date->getTimestamp(); 

अधिक जानकारी के लिए मैनुअल देखें

संबंधित मुद्दे